Spécification CSVM-1

3. Gestion des délimiteurs

Le format est à la fois lisible/éditable par les humains et les machines, mais il est essentiel de respecter certains points concernant les caractères séparateurs (au sens de CSV) qui sont plutôt à percevoir comme des délimiteurs.

Délimiteurs classiques

Divers caractères peuvent servir de séparateurs de colonnes ([, ; : espace, tabulation, |, !]). Toutefois, certains apparaissent fréquemment dans les données elles-mêmes. Il est donc préférable de recourir à des séparateurs rares, comme la tabulation ou des caractères peu utilisés (par exemple § qui aussi est connu comme ALT(gauche)-245 sur PC/Windows). Nous préférons aussi éviter, autant que possible, les caractères liés à la syntaxe des systèmes d’exploitation (/ \ < >).

Délimiteurs textuels composites

En CSV, les guillemets simples ou doubles permettent d’encadrer des textes contenant des caractères séparateurs. Le CSVM, pour des raisons de simplicité, ne recourt pas à ces délimiteurs d’encadrement. La table suivante donne quelques exemples :

Nous notons que le nombre de colonnes peut être significativement différent selon la combinaison adoptée. Avec l’objectif de définir des règles aussi simples que possibles, CSVM se passe de caractères d’encadrement, ils ne seront pas interprétés par le parseur. Il faudra utiliser un délimiteur différent du délimiteur principal pour traiter chaque sous champ de la cellule. Si le délimiteur principal correspond à des tabulations, nous utiliserons !, | ou  § pour pour conserver l’intégrité des données textuelles : 

En fait, nous pouvons utiliser ce que nous voulons en délimiteur secondaire, y compris une chaine de caractères, par exemple __CRLF__, __EOL__, _TOTO_ … car c’est à l’application de faire le travail de reconnaissance et non au parseur. Des délimiteurs (principaux ou secondaires) sous la forme de chaines de caractères sont d’abord conçus en amont, pour faciliter la tâche de l’application, en aval.

Dans l’écosystème CSVM il n’y a pas de norme pour les délimiteurs. Le parseur doit pouvoir traiter n’importe quelle chaine de caractères en tant que délimiteur, c’est à la charge de l’utilisateur d’assurer la cohérence des données et métadonnées vis à vis de ces délimiteurs.

La substitution d’un délimiteur par un autre peut être effectuée par un éditeur de texte ou un traitement automatique (par exemple via les fonctions d’un toolkit Python dédié), le fichier reste toujours un fichier CSVM.

Retour en haut