1. Manipulation de fichiers :
On s’intéresse a des fichiers en texte intégral, structurés en une suite d'enregistrements et dont l’accès est séquentiel.
Exemple :
On s’intéresse a des fichiers en texte intégral, structurés en une suite d'enregistrements et dont l’accès est séquentiel.
Exemple :
Algorithme personnel;
Type
tpersonne=enregistrement
nom:chaine(15);
age:entier;
fin;
var
nomFichier: fichier tpersonne;
nomFichExterne: chaine(30);
nomPers:chaine(15);
comp,nbEnreg,agePers:entier;
debut
{Première partie : Créer et remplir le fichier }
lire(nomFichierExterne);
nomFichier ← ouvrirFich(nomFichExterne,ECRITURE); {en algo on suppose OK}
lire(nbEnreg);{Nombre d'enregistrements à créer}
Pour comp ← 1 a nbEnreg faire
lire(nomPers);
écrireFich(nomFichier,nomPers,SDC);{SDC:caractere de controle séparateur de champs}
lire(agePers);
écrireFich(nomFichier,agePers,FDL);{FDL:caractère de controle fin de ligne}
fpour;
fermerFich(nomFichier);
{Deuxième partie : Lire et afficher le contenu du fichier }
nomFichier ← ouvrirFich(nomFichierExterne,LECTURE); {en algo on suppose OK}
tant que non(finFich(nomFichier)) faire
lireFich(nomFichier,nomPers);
écrire (nomPers);
lireFich(nomFichier,agePers);
ecrire(agePers);
ftq;
fermerFich(nomFichier);
Fin.
2. Remarques :
- En algorithmique, on suppose qu'il n'y pas de problème d’indisponibilité de fichier lorsqu'il existe (en programmation la réalité est toute autre : droits d’accès).
- A un moment donné, on ne peut accéder qu'au champ qui se trouve en face de la tête de lecture/écriture.
- Après chaque lecture ou écriture, la tête est automatiquement déplacée vers le champ suivant la donnée lue ou écrite.
- Lors d'une session d'ouverture de fichier en écriture ou ajout la lecture donne n'importe quoi. Idem pour une écriture en mode lecture.
- On ne peut affecter globalement un fichier a un autre (only une fenêtre RAM sur le fichier).
No comments:
Post a Comment
Note: only a member of this blog may post a comment.