59 votes

Quels sont les caractères de contrôle des séparateurs de fichiers/groupes/enregistrements/unités et leur utilisation ?

Unicode définit plusieurs caractères de contrôle de l'ASCII. http://www.unicode.org/charts/PDF/U0000.pdf

Je vois que de nombreux caractères de contrôle sont largement utilisés mais je ne vois vraiment pas où les "séparateurs d'information" sont utilisés. (U+001C~U+001F)

Qu'est-ce que c'est ? Quelle est leur histoire ? A quoi servaient-ils ?

71voto

Jonas Elfström Points 16453

Lammert Bies explique à la fois leur utilisation et l'histoire qui les sous-tend.

28 - FS - Séparateur de fichiers Le fichier FS est un code de contrôle intéressant de contrôle intéressant, car il nous donne un aperçu de la la façon dont la technologie informatique était organisée dans les années 60. Nous sommes maintenant habitués aux supports à accès aléatoire comme la RAM et les disques magnétiques, mais lorsque la norme ASCII a été définie, la plupart des données étaient série. Je ne parle pas seulement des communications série, mais aussi stockage en série comme les cartes perforées, le papier bandes magnétiques. Dans une telle situation, il est clairement efficace de d'avoir un seul code de contrôle pour signaler la séparation de deux fichiers. Le FS a été défini dans ce but.

29 - GS - Séparateur de groupe Le stockage des données était l'une l'une des principales raisons pour lesquelles certains de contrôle dans la définition de l'ASCII. Les bases de données sont la plupart du temps configurées avec des tables, contenant des enregistrements. Tous les enregistrements de enregistrements d'une table ont le même type, mais les enregistrements de différentes tables peuvent être différents. Le séparateur de groupes GS est défini pour séparer les tables dans un système de stockage de données en série. Notez que le mot table n'était pas utilisé à ce moment et les gens d'ASCII l'appelaient un groupe.

30 - RS - Séparateur de disques Dans un groupe (ou une table), les enregistrements sont séparés par RS ou record séparateur d'enregistrements.

31 - US - Séparateur d'unités Les plus petits éléments de données à stocker dans une base de données sont appelés unités dans le langage définition ASCII. Nous les appellerions champ maintenant. Le séparateur d'unités sépare ces champs dans un environnement de environnement de stockage de données en série. La plupart des implémentations actuelles bases de données actuelles exigent que que les champs de la plupart des types aient une longueur fixe. Un espace suffisant dans l'enregistrement est alloué pour stocker la plus grande membre le plus grand possible de chaque champ, même si cela n'est pas nécessaire dans la plupart des cas. Cela coûte une grande quantité d'espace dans nombreuses situations. Le code de contrôle américain permet à tous les champs d'avoir une longueur variable. Si l'espace de stockage des données est données est limité, comme c'était le cas dans les années soixante, c'est un bon moyen de préserver un espace précieux. un bon moyen de préserver un espace précieux. D'un autre côté, le stockage en série est est beaucoup moins efficace que les implémentations que les implémentations modernes de RAM et de disques des temps modernes. Je ne peux pas imaginer une situation où les bases de données SQL modernes sont exécutées avec les données stockées sur du papier bande ou bobines magnétiques...

Un séparateur d'unités pourrait remplir essentiellement la même fonction qu'une virgule dans un fichier CSV ou une tabulation dans un fichier délimité par des tabulations.

11voto

Jukka K. Korpela Points 71599

Voulez-vous dire que la plupart d'entre eux sont habituellement pas utilisé de nos jours ? Les caractères de contrôle concernent principalement les fonctions de contrôle des périphériques, mais certains d'entre eux ont pu être utilisés comme séparateurs dans des fichiers texte. Pour une référence rapide, consultez mon tableau des contrôles C0 .

Les séparateurs d'informations ont été utilisés pour regrouper les données de manière simple, mais de nos jours, les formats binaires ou le format XML sont utilisés pour l'organisation des données. Il existe encore des curiosités, comme l'utilisation interne de U+001E et U+001F dans Microsoft Word pour mettre en œuvre l'idée propre au programme de "trait d'union non cassant" et de "trait d'union facultatif" (contrairement aux caractères Unicode destinés à des fins similaires). Ceci illustre principalement le fait que les programmes peuvent utiliser les caractères de contrôle de manière étrange. Les problèmes surviennent bien sûr si ces caractères sont inclus dans un texte transmis à d'autres programmes.

4voto

scruss Points 788

Leur fonction est délibérément ambiguë. Tiré de la référence standard pour le développement du codage des personnages (Mackenzie, Charles E. Jeux de caractères codés : Histoire et développement . Addison-Wesley Longman Publishing Co., Inc., 1980.), chapitre 26 section 1, page 460 :

Quatre caractères supplémentaires à usage général, appelés séparateurs d'information, ont été intégrés dans le code 7 bits [ASCII] et dans l'EBCDIC. Le séparateur de fichiers, le séparateur de groupes, le séparateur d'enregistrements et le séparateur d'unités ont été définis de manière générale pour être utilisés afin de séparer des blocs d'informations. Mais la manière dont ils devaient être utilisés pour séparer les blocs, la philosophie de la structuration des fichiers et des enregistrements à utiliser, n'était pas spécifiée intentionnellement. Une telle spécification détaillée devait être laissée à l'application particulière de traitement des données dans laquelle les séparateurs seraient utilisés. Initialement, une philosophie hiérarchique [sic] de structuration des blocs d'information a été définie. Un "fichier" était plus grand que des "groupes" et les englobait. Un "groupe" était plus grand que les "enregistrements", qu'il englobait. Et un "enregistrement" était plus grand que des "unités", qu'il englobait. Finalement, les comités de normalisation ont rendu cette spécification hiérarchique facultative, c'est-à-dire que les séparateurs n'ont pas besoin d'être utilisés de manière hiérarchique, mais s'ils le sont, la hiérarchie sera celle décrite ci-dessus. Les comités de normalisation se sont rendu compte que, comme dans le cas des contrôles de dispositifs, le manque de spécificité des séparateurs d'information pouvait entraîner des difficultés d'échange d'information, mais que ces difficultés pouvaient être résolues dans les rares cas où elles se présentaient.

Un exemple d'une norme qui utilise cette hiérarchie des contours est une version maintenant mise à jour du Norme ANSI/NIST-ITL pour l'échange d'images biométriques médico-légales. L'ITL " Encodage traditionnel " a utilisé les séparateurs ASCII comme suit :

␜ Caractère séparateur de fichiers - sépare les enregistrements logiques.

␝ Caractère séparateur de groupe - sépare les champs.

␞ Caractère séparateur d'enregistrement - sépare les sous-zones répétées.

␟ Caractère séparateur d'unité - sépare les éléments d'information.

Cette utilisation peut sembler en contradiction avec l'objectif déclaré des séparateurs, mais la compréhension de la hiérarchie prévue des codes de caractères rend les choix de la norme ITL plus appropriés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X