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