Structures dynamiques linéaires non-récursives (les fichiers)
Les structures dynamiques linéaires non-récursives, sont aussi connu sous le terme de «fichiers» ou «file» en anglais. Il s'agit d'une structure homogène dont chacun de ses éléments sont entreposés séquentiellement l'un à la suite de l'autre sur un périphérique ou un support externe comme un disque dur, une unité de disquette, une bande magnétique, une clef USB par exemple. Dans de nombreuses intégration du langage de programmation Pascal, ils offrent les possibilités d'effectuer des déclarations de fichiers d'accès directe avec assez souvent des tailles fixes de fichiers lors de la création, mais dans cette situation, il ne s'agit pas de structures dynamiques car elle n'offre pas la possibilités d'évoluer avec le temps au fil des besoins. En faite, les structures dynamiques linéaires non-récursives font plutôt référence à des fichiers séquentiels avec les caractéristiques de chaînages et les restrictions suivantes :
- Il faut insérés les données à la fin du fichier uniquement.
- Lorsqu'on effectue une suppression, il faut supprimer tous les éléments.
- Par défaut, le chaînage des éléments est considéré comme implicite.
- Il n'est possible d'accéder à de ses élément que dans l'éventualité où l'on d'abord accédé à son élément précédent. Naturellement, le premier élément du fichier fait exception.
Dans le langage de programmation Pascal, on définira donc une structure dynamique linéaires non-récursives de la façon suivante :
Primitives de manipulation
Dépendamment du langage de programmation utilisé, il y a aura un certains nombres de fonctions et/ou de procédure allant permettre d'effectuer ses manipulations. Voici un tableau généralistes en fonction de certains langages de programmation :
Pascal | C | Description |
---|---|---|
RESET | Cette procédure permet d'ouvrir un fichier à partir de la variable fichier spécifié et de le réinitialiser au début. | |
REWRITE | Cette procédure permet de créer un nouveau fichier ou d'écraser le contenu d'un fichier existant. | |
GET | fread | Cette procédure permet d'avancer le pointeur de fichier vers la prochaine composante dans le fichier. |
PUT | fwrite | Cette procédure permet d'avancer le pointeur de fichier vers la prochaine composante dans le fichier. |
EOF | feof | Cette fonction permet d'indiquer si la fin du fichier a été atteinte. |
EOLN | Cette fonction permet d'indiquer si la fin de la ligne a été atteinte. | |
IORESULT | errno | Cette fonction permet de demander l'erreur de la dernière opération d'entrée/sortie. |
CLOSE | fclose | Cette fonction permet de fermer le fichier. |
... | ... | ... |
Remarques
- Fichiers TEXT du Pascal : Le langage de programmation Pascal propose le type de fichiers prédéfinit TEXT, lequel est l'équivalent de «FILE OF CHAR». Non seulement, il propose en plus de pouvoir manipuler ce type de fichiers GET et PUT mais en plus il est supporté par les primitives READ, READLN, WRITE et WRITELN.
- Le langage de programmation C est assez faible au niveau du support des structures dynamiques linéaires non récursives, se sont plutôt les marques de C ayant rajouté un support de ses possibilités. Toutefois, le langage de programmation C++ n'a pas les mêmes faiblesses à se niveau.