DAIGL – Algorithmique/Python – Fichiers séquentiels
Fichiers séquentiels
(Python/Perl : Fichiers textes)
Toutes les variables (scalaires, listes et données structurées) que nous avons utilisées jusqu'à présent 
étaient stockées en mémoire (RAM). Cela pose plusieurs problèmes :
●La durée de vie d'une variable est égale au temps d'exécution d'une fonction/procédure dans le 
cas d'une variable locale, et au temps d'exécution du programme dans le cas d'une variable 
globale. 
●En tout état de cause, mettre fin à l'application, ou mettre hors-tension le poste de travail (ou 
tout simplement une coupure de courant), voire un "plantage" du système d'exploitation (!!!) a 
pour conséquence la perte du contenu de ces variables. 
Il est aisé de comprendre qu'une telle situation n'est pas envisageable dans un programme utilisé dans 
un cadre professionnel. Prenons le cas d'une entreprise qui archive à l'aide de votre application, des 
commandes.   Ces   données   qui   doivent   être   mémorisées   plus   longtemps   que   la   durée   de   vie   de 
l'application sont alors enregistrées sur un support non volatile de type disque dur, bande, CD-ROM… 
On sauvegardera ces données dans des fichiers. 
1- Opérations sur les fichiers
On nomme enregistrement, la collection d'informations (chaque information correspond alors à une 
rubrique)   mémorisées   pour   définir   un   des   "objets"   traités.   Un   fichier   est   une   collection 
d'enregistrements.
Ouvrir : Avant toute consultation ou modification d'un fichier, il est nécessaire de l'ouvrir.
Fermer : Un fichier ouvert doit être fermé quand les traitements le concernant sont terminés.
Lire : Une instruction de lecture recopie du fichier vers la mémoire un enregistrement.
Ecrire : Une instruction d'écriture recopie de la mémoire vers le fichier un enregistrement.
Réécrire : Une instruction de ré-écriture recopie de la mémoire vers le fichier un enregistrement en 
lieu et place du dernier enregistrement lu.
Supprimer : Une instruction de suppression met à jour un indicateur associé à un enregistrement pour 
indiquer que celui-ci n'est logiquement plus à prendre en compte. On parle de suppression logique et 
non physique, car il n'est pas supprimé physiquement du fichier (ce qui impliquerait un décalage de 
tous les enregistrements, un décalage qui risque de consommer beaucoup de "temps machine"). Seul 
cet indicateur permettra au système de savoir que cet employé n'est plus valide.
Positionner   :  Une   instruction   de   positionnement   permet   de   se   positionner   directement   sur   un 
enregistrement. Cette instruction ne fonctionne qu'avec des fichiers à accès aléatoire (à accès direct) 
mais son utilisation n'est pas autorisée pour les fichiers séquentiels.
2- Organisation d'un fichier et accès aux enregistrements
Organisation séquentielle :  Les enregistrements d'un fichier séquentiel sont accessibles dans leur 
ordre   chronologique   d'enregistrement.   Pour   lire   un   enregistrement   donné,   il   faut   lire   tous   les 
enregistrements qui le précèdent. Ce type de fichier ne permet qu'un accès séquentiel à l'information.
Organisation relative :  Les enregistrements portent chacun un numéro relatif à leur emplacement 
dans le fichier. Le premier enregistrement porte le numéro 1, le deuxième enregistrement porte le 
numéro 2… Ils peuvent être lus et écrits directement grâce à ce numéro d'ordre, ce qui autorise un 
accès direct à l'information.
Organisation séquentielle indexée : Une structure supplémentaire associée au fichier appelée index 
permet un accès plus rapide aux enregistrements. Cet index est construit à partir de certains champs de 
l'enregistrement du fichier. Ce type de fichier permet un accès direct à l'information.
Dans ce cours, nous nous intéresseront seulement aux fichiers séquentiels.
3- Fichiers séquentiels
Dans un fichier séquentiel, les enregistrements sont écrits les uns à la suite des autres. Après ouverture 
du fichier, la lecture commence toujours par le premier enregistrement, puis le deuxième, puis son 
suivant… et ainsi de suite jusqu'au dernier enregistrement (lecture séquentielle du fichier). 
Page 1