|
Tutoriaux
- Fichier texte |
Un fichier texte est généralement un fichier portant l'extension
*.txt.
Son utilisation est très diversifiés. Il peut être
une source d'informations ou il peut être également utiliser
comme sauvegarde de données par un programme.
Pour accéder à un fichier, il faut tout d'abord l'ouvrir
et ensuite après l'avoir manipuler, il faut le refermer.
Utilisation
d'un fichier texte |
Pour travailler avec un fichier texte, il faut déclarer une variable
du type TextFile et ensuite associer le chemin du fichier à cette
variable.
On effectue cette association grâce à la procédure
AssignFile.
Pour le tutorial, notre fichier texte se nommera "test.txt".
Var
F: TextFile;
begin
AssignFile(F,'c:\test.txt'); //Associe
la variable F au fichier texte
|
|
Dans notre exemple
d'association (ci-dessus), le fichier "test.txt" se trouve
sur le disque "c:\", il serait plus judicieux de le mettre
dans le répertoire de travail de l'exécutable.
Var
F: TextFile;
begin
AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
//Associe la variable F au fichier
texte
|
|
ExtractFilePath(Application.ExeName)+'test.txt'
|
|
"Application.ExeName"
contient le nom du fichier de l'exécutable de l'application, y compris
le chemin d'accès.
Avec la fonction "ExtractFilePath", on ne garde que le chemin
d'accès puis on ajoute le nom notre fichier texte "test.txt".
Pour, nos exemples, voici le contenu du fichier texte "test.txt"
:
voici
la premiere ligne
voici la deuxieme ligne
voici la troisieme ligne
|
|
Lire
la première ligne d'un fichier texte |
Après
avoir associer une variable avec AssignFile, on peut alors manipuler
cette variable.
Pour commencer, il faut ouvrir cette variable grâce à la
procédure Reset.
Cette permet d'ouvrir le fichier sans modifier le contenu.
Reset(F);
//Ouvre le fichier sans le modifier
|
|
Ensuite, on va
lire la première ligne du fichier grâce à la procédure
ReadLn.
Elle permet de lir une ligne du fichier texte jusqu'au prochain saut
de ligne.
Var
Stg :string;
begin
Readln(F,Stg); //Lit une ligne du
fichier texte jusqu'au prochain saut de ligne
|
|
La variable Stg
de type string permet de sauvegarder la première ligne du contenu
de la variable F.
On va utilise ici
Edit2 (composant TEdit) pour visualiser la première ligne.
Edit2.Text:=Stg;
//Affiche dans Edit2 le contenu de
la variable Stg
|
|
Après avoir
manipuler un fichier texte, il faut fermer l'association avec la procédure
CloseFile.
CloseFile(F);
//Ferme l'association entre la variable
F et le fichier texte
|
|
Voici l'exemple
complet de la lecture de la première ligne d'un fichier texte
:
procedure
TForm1.Button2Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Lire la premiere ligne AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
Reset(F); //Ouvre le fichier sans
le modifier
Readln(F,Stg);
//Lit une ligne du fichier texte jusqu'au
prochain saut de ligne
Edit2.Text:=Stg; //Affiche dans Edit2
le contenu de la variable Stg
CloseFile(F); //Ferme l'association
entre la variable F et le fichier texte
end;
|
|
Lire
la deuxième ligne d'un fichier texte |
Pour lire la deuxième
ligne, il suffit de modifier l'étape avec la procédure
Readln.
Il faut tout simplement ajouter Readln(F) :
Readln(F);
//Met la position en cours du fichier
au début de la ligne suivante
Readln(F,Stg); //Lit la ligne en cours,
c'est à dire la deuxième ligne
|
|
Si vous voulez lire
la troisieme ligne alors il faut mettre deux fois Readln(F) puis Readln(F,Stg).
Voici l'exemple complet
pour lire la deuxième ligne d'un fichier texte :
procedure
TForm1.Button3Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Lire la deuxième ligne AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
Reset(F);
Readln(F,Stg); //Lit une ligne du
fichier texte jusqu'au prochain saut de ligne
Readln(F,Stg); //Lit la ligne suivante
{si vous voulez lire la troisieme
ligne alors il faut mettre trois fois Readln(F,Stg)}
Edit3.Text:=Stg; //Affiche dans Edit3
le contenu de la variable Stg
CloseFile(F);
end;
|
|
On utilise Edit3
(composant TEdit) pour afficher le contenu de la variable Stg.
Lire
le contenu d'un fichier texte |
Pour lire le contenu d'un fichier texte, il faut alors avoir recours
à une boucle.
repeat
//Repeter...
Readln(F,Stg); //Lit une ligne du
fichier texte jusqu'au prochain sut de ligne
Memo1.Lines.Add(Stg); //Affiche dans
Memo1 le contenu de la variable
Stg
until EOF(F);// ...jusqu'à
ce que la position en cours du pointeur se trouve en fin
de fichier
|
|
La fonction EOF détermine
si la position en cours du pointeur se trouve en fin de fichier.
On utilise Memo1 (composant
TMemo) pour afficher le contenu de la variable Stg.
Voici l'exemple complet pour lire le contenu d'un fichier texte :
procedure
TForm1.Button4Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Lire le contenu du fichier
Memo1.Clear; //Efface le contenu de
Memo1
AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
Reset(F);
repeat //Repeter...
Readln(F,Stg); //Lit une ligne du
fichier texte jusqu'au prochain sut de ligne
Memo1.Lines.Add(Stg); //Affiche dans
Memo1 le contenu de la variable
Stg
until EOF(F);// ...jusqu'à
ce que la position en cours du pointeur se trouve en fin
de fichier
CloseFile(F);
end;
|
|
Lire
le contenu d'un fichier texte si le fichier existe |
Cette opération
permet d'éviter un message d'erreur et de ne pas essayer de
le manipuler si le fichier n'existe pas.
On garde le même code source que précèdemment,
on va juste ajouter quelques lignes.
On va jouer sur la vérification d'entrées et de sorties.
Avec {$I-}, on va désactivé
la vérifiaction d'E/S puis on va la réactivé
avec {$I+}.
Ensuite avec la fonction IoResult, on renvoit l'état de la
dernière opération d'E/S.
Si cette fonction est égale à 0 alors, le fichier existe
autrement il y a un problème.
Voici l'exemple complet de lecture :
procedure
TForm1.Button5Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Lire le fichier si il existe avec
{$I-} et {$I+}
AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
{$I-} //La vérification d'E/S est
désactivée
Reset(F);
{$I+} //La vérification d'E/S est
activée
if IoResult=0 then //Renvoie
l'état de la dernière opération d'E/S
begin
repeat
Readln(F,Stg);
Memo2.Lines.Add(Stg);
//Affiche dans Memo2 le contenu de
la variable Stg
until Eof(F);
CloseFile(F);
end;
end;
|
|
On utilise Memo2 (composant TMemo) pour afficher le contenu de la variable
Stg.
Ecriture
d'un fichier texte |
Pour l'écriture
d'un fichier, on ne va plus utiliser les procédures Reset ou
Readln mais les procédures Rewrite, Append et Writeln.
Effacer
le fichier et écrire |
La procédure
Rewrite permet de créer (efface le contenu si le fichier existe
déjà) puis d'ouvrir le fichier.
La procédure Writeln va être utiliser pour écrire
la ligne.
On utilise Edit1 (composant TEdit) pour insérer le texte.
Voici l'exemple complet pour effacer le fichier texte et en suite écrire
dedans :
procedure
TForm1.Button1Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Effacer le fichier et ecrire
Stg:=Edit1.Text; //Recupere dans la
variable Stg le contenu de Edit1
AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
Rewrite(F); //Crée puis ouvre un nouveau
fichier
Writeln(F,Stg); //Writeln place une
marque en fin de ligne
CloseFile(F);
end;
|
|
Insérer
une ligne à la fin du fichier texte |
Au lieu, d'utiliser
la procédure Rewrite, on va utiliser la procédure Append.
Elle permet de préparer le fichier existant pour l'ajout de texte.
On utilise Edit4 (composant TEdit) pour insérer le texte qui
sera ajouter à la fin du fichier texte.
Voici l'exemple complet pour insérer une ligne à la fin
du fichier texte :
procedure
TForm1.Button6Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
//Insérer une ligne a la fin du fichier
texte
Stg:=Edit4.Text; //Recupere dans la
variable Stg le contenu de Edit4
AssignFile(F,ExtractFilePath(Application.ExeName)+'test.txt');
Append(F); //Prépare un fichier existant
pour l'ajout de texte
Writeln(F,Stg); //Writeln écrit une
marque fin de ligne
CloseFile(F);
end;
|
|
Manipulations
d'un fichier texte |
[ 15-06-2002 ] |
Exemples
regroupant des manipulations de lecture et d'écriture
d'un fichier texte.
Télécharger : [7
Ko] [
fichtexte.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|