Téléchargement d'épreuves

et

Cours gratuits

Les fichiers

Généralités

Un fichier est une collection d'information structurée en unité d'accès appelé enregistrement.
Un fichier est toujours enregistré dans un support externe à la mémoire centrale (disque dur, disquette, clef USB ...).
L'accès aux différents éléments d'un fichier peut être soit séquentiel soit direct.

Déclaration d'un fichier

type
etudiant = record
matricule : string;
nom : string;
note : real;
end;
fichier = file of etudiant;

Remarque:

Un fichier une fois créé doit continuer à exister indépendamment du programme qui le construit. Chaque fichier a un nom physique ou chemin d'accès qui se présente sous la forme 'unité: nom_fichier.Extension'unité peut être A: B: C: D:
nom_fichier est constitué de 1 à 8 caractères.

extention de 0 à 3 caractères.

Exemple:

'C:\Etude.txt'
Le nom du fichier est spécifié par l'instruction assign.

Exemple:

assign(fichier, 'C:\etude.txt')

Exemple:

var F: file of etudiant;
begin
assign(F, 'A:\etude.txt');

L'accès séquentiel à un fichier

Pour l'accès séquentiel on parcourt le fichier élément par élément pour obtenir l'élément à traiter. Les primitives utilisées sont:

  • rewrite(fichier) permet d'ouvrir le fichier en écriture. Si le fichier existe déjà son ancien contenu devient inaccessible. Si le fichier n'existe pas encore, il sera tout simplement créé (pour l'instant il sera vide).
  • reset(fichier) permet l'ouverture du fichier en lecture ou en lecture écriture. Dans ce cas le fichier doit effectivement exister sinon il se produit une erreur d'exécution.
  • write(fichier, val) cette instruction permet d'écrire le contenu de val dans le fichier. Seulement val doit être du même type que les éléments du fichier.
  • read(fichier, val) cette instruction permet d'introduire un élément du fichier dans val.
  • eof(fichier) permet de détecter la fin du fichier. Cette fonction prend la valeur vraie si la fin du fichier a été atteinte.
  • close(fichier) permet de fermer le fichier à partir de là le fichier devient inaccessible.

Exemple:

program creation_fichier_etudiant;
type etudiant = record
matricule : string;
nom : string;
note : real;
end;
var fichir : file of etudiant;
personne : etudiant;

begin
assign(fichier, 'C:\etudiant.txt');
rewrite(fichier);
repeat
write('matricule: ')
readln(personne.matricule);
write('nom');
readln(personne.nom);
write('note: ');
readln(personne.note);
if length(personne.matricule) <> 0 then
write(fichier, personne);
until length(personne.matricule) = 0;
close(fichier);
end.

Exercice:

Ecrire un programme qui permet d'afficher la liste des informations des étudiants contenu dans 'C:\etudiant.txt'.

Solution:

var F:file of etudiant
program affiche per: etudiant
begin
assign(F, 'C:\etudiant.txt');
reset(F);
read(F, per);
while not (eof(F)) do
begin
writeln(per.matricule);
writeln(per.nom);
writeln(per.note);
read(F, per);
end;
close(F);
end.

 

Accès direct

 

Il est possible d'accéder directement à un élément du fichier lorsqu'on connaît son numéro.
La seule instruction nouvelle lors de l'accès direct est l'instruction seek(fichier, numéro) qui place la tête de lecture à l'élément donc le numéro a été indiqué.
Par convention les éléments d'un fichier sont spécifiés à partir de 00 et non à partir de 1
Exemple: seek(F,2)

  • filesize(fichier) renvoie le nombre d'élément.
  • filesize(fichier)-1 pour trouver le dernier élément.
  • seek(F, filesize(fichier)) pour placer le curseur à la fin du fichier.

Exemple:

procedure affiche_element(var F: fichier)
var val: etudiant; num: integer;
begin
assign(F,'C:\etudiant.txt');
reset(F);
writeln('Entrer un numéro: ');
repeat
write('Numéro = ');
readln(num);
until num <= filesize(F)
seek(F, num);
read(F, val);
writeln('Matricule: ',val.matricule);
writeln('nom: ', val.nom);
writeln('note: ',val.note);
close(F);
end;

Consultez gratuitement nos différents cours

  • L'adjectif qualificatif (Français)

    L'adjectif qualificatif est un mot variable qui sert à préciser une qualité, l'état d'une personne, d'un animal ou d'une chase. Exemple: Notre monde est cruel. Ce chien est méchant.   Les fonctions de l'adjectif qualificatif La fonction se détermine par rapport au mot qu'il qualifie, il peut donc être épithète. Lorsqu'il vient immédiatement avant ou après le mot auquel il se rapporte. Exemple: On entend la terrible vois de son père. Il a reçu un coup violent   Mise en apposition Un adjectif est mis...

    Lire la suite : L'adjectif qualificatif

  • La classe des mots (Français)

    Corpus La petite chèvre de monsieur Séguin a été dévorée hier par le loup. Ouf! dit l'homme en déposant son fardeau. Je veux que tu vienne passer les vacances chez nous cette fois-ci. Il ne pouvait ni avancer ni reculer Chacun a hâte d'arriver au but. La langue Français distingue 3 classes grammaticales de mots qui se repartissent en mots variables d'une part et en mots invariables d'autre part.   Les mots variables Ils varient en genre et en nombre et en personne. Ils se compose de: Les noms...

    Lire la suite : La classe des mots

  • Les éléments de base du langage C (Programmation C)

    Les identificateurs Les identificateurs permettent de désigner les objets manipulés dans un programme, Exemple: les variables, les constantes, les fonctions. Comme dans la plus part des langages, les identificateurs sont formés d'une suite de caractères alphanumérique. Le premier caractère étant toujours une lettre. En C: le caractère _ est considéré comme une lettre, il peut donc apparaitre au début d'un identificateur. Les majuscules et les minuscules sont autorisées mais ne sont pas...

    Lire la suite : Les éléments de base du langage C