thome←Formate(thome,15) 
tshell←Formate(tshell,15) 
ligne←tlogin&tpwd&tuid&tgid&tcmt&thome&tshell 
/* Ecriture */ 
Ecrire(fic,ligne) 
Fermer fic 
Fin
L’instruction Ecrire rajoute l’enregistrement dans le fichier, puis se place à la suite de l’enregistrement créé. Aussi si 
vous exécutez une nouvelle instruction Ecrire, le nouvel enregistrement se placera à la suite du précédent. Attention 
cependant au mode d’ouverture du fichier ! En mode lecture/écriture, l’enregistrement ne sera pas ajouté à la fin du 
fichier (contrairement au mode ajout) mais à la position courante : vous écrasez les enregistrements existants, les 
uns après les autres. 
Un programme assez simple consiste à recopier les enregistrements d’un fichier dans un autre. Pour rajouter un tout 
petit peu de piment, pourquoi ne pas dire que si le champ mot de passe contient un "d", l’enregistrement doit être 
détruit ? Il suffit de ne pas le recopier dans le nouveau fichier. 
Programme COPIE 
Var 
fic,fic2 :fichiers séquentiels 
nom,nom2 :chaînes 
ligne,pwd:chaînes 
Début 
nom←"passwd" 
nom2←"backup" 
Ouvrir nom dans fic en lecture 
Ouvrir nom2 dans fic2 en Ajout 
 
Tant que NON EOF(fic) Faire 
Lire(fic,ligne) 
pwd ←trim(milieu(ligne,9,1)) 
Si pwd<>"-" Alors 
Ecrire(fic2,ligne) 
FinSi 
FinTantQue 
Fermer fic 
Fermer fic2 
Fin
Cette stratégie de recopie a un avantage : elle n’utilise  que  très  peu  de  mémoire.  Elle  a  cependant  un  très  gros 
inconvénient, elle nécessite la présence à un moment donné de deux fichiers sur le disque dur. Dans le traitement 
précédent le but était de supprimer les lignes inutiles du premier fichier. Au final ce genre de traitement est en trois 
étapes : 
q Recopie des enregistrements de passwd vers backup. 
q Suppression du fichier passwd. 
q Renommage de backup en passwd. 
Cette méthode sera à privilégier sur des fichiers très imposants, plusieurs milliers (ou millions) de lignes, si la mémoire 
ne doit pas être trop chargée. 
Une autre méthode consiste à tout traiter en mémoire. Elle se fait en deux étapes : 
q Lecture intégrale du fichier passwd et stockage des lignes dans un tableau. 
q Réécriture du fichier passwd avec les bons éléments du tableau. 
  Note : Certains langages font une distinction entre le mode d’écriture, généralement destructeur (le fichier est 
purgé ­ vidé ­ avant l’ajout de données) et un mode d’ajout étendu, où le fichier peut aussi être lu… Prudence. 
Traiter sur disque ou en mémoire ?
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
158
Précédent

- 158/220

Suivant