Les enregistrements 
Ce chapitre se concentre sur les fichiers texte. Dans ceux­ci, vous devez définir la structure de vos enregistrements. Bien 
que tout soit possible, notamment avec des structures en arborescence comme le XML, vous pouvez initialement choisir 
entre deux méthodes assez simples : les enregistrements avec délimiteurs ou à largeur fixe. 
1. Les délimiteurs 
Les enregistrements délimités sont courants sous Unix. Dans chaque ligne, les valeurs individuelles sont appelées des 
champs  et  sont  séparées  entre  elles  par  un  caractère  particulier  appelé  caractère  de  séparation  ou  caractère  de 
délimitation, ou enfin délimiteur. N’importe quel caractère peut convenir, cependant il ne doit pas se retrouver dans la 
valeur d’un champ, ce qui aurait pour effet de casser la structure de l’enregistrement. Ce sont souvent le point­virgule 
";" ou les deux points ":" qui sont utilisés. 
Les champs d’enregistrements sont généralement encadrés par des guillemets lorsqu’il s’agit de chaînes de caractères, 
rien pour des valeurs numériques. Ce n’est pas une affirmation : ce n’est pas toujours le cas et c’est à vous de gérer le 
type d’une valeur donnée, au sein de votre programme. 
Voici un simple exemple de contenu de fichier délimité de type courant sous Unix : 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
Les  plus  perspicaces  d’entre  vous  auront  reconnu  un  morceau  du  fichier  /etc/passwd  qui  contient  quelques 
informations sur les comptes des utilisateurs du système Unix. Chaque ligne est un enregistrement dont la structure 
est la suivante : 
q Un séparateur ":" délimite les différents champs. 
q Il y a sept champs, numérotés (par convention) de 1 à 7. 
q 1 er  champ : nom de l’utilisateur (son login).
 
q 2 ème  champ : indicateur de mot de passe (ici stocké ailleurs).
 
q 3 ème  champ : UID, identifiant numérique unique de l’utilisateur.
 
q 4 ème  champ : GID, identifiant du groupe de l’utilisateur (stocké ailleurs).
 
q 5 ème  champ : commentaire libre.
 
q 6 ème  champ : dossier personnel de l’utilisateur.
 
q 7 ème  champ : l’interpréteur de commandes (shell) de connexion.
 
Vous voyez bien qu’il est possible de placer des informations très importantes dans un fichier texte. 
La  manipulation  d’un  tel  fichier  est  assez  évidente :  il  suffit  de  lire  une  ligne,  puis  de  découper  celle­ci  champ  par 
champ, ce qui est plutôt simple car il suffit dès lors de trouver les délimiteurs. La plupart des langages proposent des 
fonctions qui permettent de découper une chaîne selon des délimiteurs. Ce type de fichier a aussi bien des avantages 
que des inconvénients : 
q Du fait que les champs soient collés les uns aux autres et que chaque champ ne prend pas plus d’espace que 
sa donnée occupe, fournit un réel avantage en terme d’occupation d’espace disque et de mémoire. 
q Cependant,  le  traitement  de  découpage  de  la  chaîne  en  fonction  de  la  position  forcément  aléatoire  d’un 
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
151
Précédent

- 151/220

Suivant