Module 7 : Manipulation des fichiers et des
entrées/sorties (I/O) en Pascal**
Module 7 : Manipulation des fichiers et des entrées/sorties (I/O) en Pascal
1. Introduction à l'I/O en Pascal
La manipulation des fichiers et des entrées/sorties (I/O) est essentielle pour lire et écrire des données
stockées sur disque. En Pascal, les opérations I/O permettent d'interagir avec des fichiers, de récupérer
ou d'enregistrer des données persistantes.
2. Opérations de lecture et écriture de fichiers
2.1 Ouverture et fermeture de fichiers
Pour ouvrir un fichier, on utilise Assign , Reset pour les fichiers existants, ou Rewrite pour en
créer de nouveaux.
Pour fermer un fichier, on utilise Close .
Var
F: TextFile;
Begin
Assign(F, '[Link]'); { Assigner le nom du fichier }
Reset(F); { Ouvrir le fichier en mode lecture }
{ Code de traitement de lecture }
Close(F); { Fermer le fichier }
End.
2.2 Lecture de fichiers
Lecture d'un fichier ligne par ligne avec ReadLn ou Read :
Var
F: TextFile;
Ligne: String;
Begin
Assign(F, '[Link]');
Reset(F);
While Not EOF(F) Do
Begin
ReadLn(F, Ligne); { Lecture d'une ligne }
Writeln(Ligne); { Affichage }
End;
Close(F);
End.
2.3 Écriture dans un fichier
Utilisation de Rewrite ou Append pour écrire :
Var
F: TextFile;
Texte: String;
Begin
Assign(F, '[Link]');
Rewrite(F); { Ouvrir pour écrire }
Writeln(F, 'Bonjour');{ Écriture de données }
Close(F); { Fermer le fichier }
End.
2.4 Ouverture en mode Append
Utilisé pour ajouter des données à la fin d'un fichier existant :
Assign(F, '[Link]');
Append(F);
Writeln(F, 'Nouvelle ligne');
Close(F);
3. Lecture et écriture de fichiers binaires
Utilisation de types binaires avec File of et BlockRead , BlockWrite .
3.1 Écriture dans un fichier binaire
Var
F: File of Integer;
Valeur: Integer;
Begin
Assign(F, 'fichier_bin.dat');
Rewrite(F);
Valeur := 123; { Écriture d'entiers }
BlockWrite(F, Valeur, SizeOf(Valeur));
Close(F);
End.
3.2 Lecture d'un fichier binaire
Var
F: File of Integer;
Valeur: Integer;
Begin
Assign(F, 'fichier_bin.dat');
Reset(F);
While Not EOF(F) Do
Begin
BlockRead(F, Valeur, SizeOf(Valeur));
Writeln('Valeur : ', Valeur);
End;
Close(F);
End.
4. Gestion des exceptions et erreurs
Il est important de gérer les erreurs de fichiers avec Assign et Reset :
Var
F: TextFile;
Begin
Assign(F, '[Link]');
{$I-} Reset(F); {$I+}
If IOResult <> 0 Then
Writeln('Erreur lors de l''ouverture du fichier')
Else
Begin
{ Code de lecture ou écriture }
Close(F);
End;
End;
5. Manipulation des fichiers avec enregistrement et récupération de données
structurées
5.1 Enregistrement et lecture avec des types records
Utilisation d'enregistrements pour stocker des données complexes.
Type
TPerson = Record
Nom: String[50];
Âge: Integer;
End;
Var
F: File of TPerson;
P: TPerson;
Begin
Assign(F, '[Link]');
Rewrite(F);
[Link] := 'Alice';
P.Âge := 30;
BlockWrite(F, P, SizeOf(TPerson));
Close(F);
Reset(F);
While Not EOF(F) Do
Begin
BlockRead(F, P, SizeOf(TPerson));
Writeln('Nom: ', [Link], ', Âge: ', P.Âge);
End;
Close(F);
End.
6. Manipulation des entrées/sorties utilisateur (Console Input/Output)
Lecture depuis la console :
Var
Nom: String;
Âge: Integer;
Begin
Write('Entrez votre nom : ');
ReadLn(Nom); { Lecture d'une chaîne de caractères }
Write('Entrez votre âge : ');
ReadLn(Âge); { Lecture d'un entier }
Writeln('Nom : ', Nom);
Writeln('Âge : ', Âge);
End.
Écriture sur la console :
WriteLn('Bonjour, ', Nom);
7. Exemples pratiques de manipulation des fichiers et I/O
Program Main;
Var
F: TextFile;
Nom: String;
Âge: Integer;
Begin
Assign(F, 'fichier_personnes.txt');
Rewrite(F);
Write('Entrez le nom : '); ReadLn(Nom);
Write('Entrez l''âge : '); ReadLn(Âge);
Writeln(F, Nom, ' ', Âge);
Close(F);
Reset(F);
While Not EOF(F) Do
Begin
ReadLn(F, Nom, Âge);
Writeln('Nom: ', Nom, ', Âge: ', Âge);
End;
Close(F);
End.
Ce module a couvert les bases de la gestion des fichiers et des entrées/sorties (I/O) en Pascal. Si vous
avez besoin de détails supplémentaires ou d'exemples plus spécifiques, je suis à votre disposition.