Cours d'algorithme

La manipulation des fichiers


Ouverture

● Lors de l'ouverture du fichier il faut préciser pour quelle opération celui-ci sera utilisé, Entrée, Sortie ou Ajout. On indiquera aussi par un no le buffer qui sera la représentation du fichier en mémoire:
OUVRIR nomdufichier POUR operation COMME NumBuffer
● Nomdufichier:
nom physique complet du fichier, exemple c:\monfichier.txt
● Operation:
ENTREE, SORTIE ou AJOUT (INPUT, OUTPUT ou APPEND)
● NumBuffer:
un numéro de 1 à 255 précédé du caractère #

Tester sur l'existence du fichier

● lors d'une ouverture pour lecture ou ajout, il faut s'assurer de l'existence préalable du fichier.

● la fonction qui nous permet d'obtenir la certitude de l'existence ou non d'un fichier à un emplacement donné sur le disque est une fonction booléenne qui renverra vrai si le fichier existe ou faux sinon.


Algorithme exists_proc
Début
Si (EXISTEFIC("c:\liste.txt") = VRAI) Alors
OUVRIR("c:\liste.txt") POUR LECTURE COMME #1
Sinon
Ecrire("Le fichier demandé n'existe pas")
FinSi
Fin

Opérations sur les données

● Deux opérations très simples; la lecture depuis le buffer et l'écriture dans le buffer:
MaVariable ← LIREFIC NumBuffer
ECRIREFIC MaVariable NumBuffer

Détection de fin de fichier

● Une variable système permet de définir que le programme a atteint la fin du fichier et qu'il n'y a plus d'éléments à lire.

● Cette variable sera nommée par un mot clé réservé EOF pour End Of File assignée par buffer.

● EOF NumBuffer.


Algorithme eof_alg
Variables VARTAMP : réel
Début
OUVRIR("c:\liste.txt") POUR LECTURE COMME #1
TanQue (NON(EOF #1)) Faire
VARTAMP ← LIREFIC #1
Ecrire(VARTAMP)
FTQ
FinSi
Fin

Fermeture

● Pour terminer le traitement d'un fichier, il faudra libérer celui-ci pour qu'il puisse être de nouveau utiliser par un autre programme.

● Attention, l'opération de fermeture provoque le transfert des données de la zone tampon, buffer, sur le disque dans le cas d'un fichier ouvert pour sortie ou ajout. Si vous oubliez de fermer le fichier, les données de celui-ci ne seront pas sauvegardées.

● FERMERFIC NumBuffer.