Lecture de fichier. Boucle

Résolu
pandaspirit Messages postés 3 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 janvier 2006 - 27 janv. 2006 à 16:37
pandaspirit Messages postés 3 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 janvier 2006 - 28 janv. 2006 à 21:16
Bonjour !

J'ai un petit soucis avec la lecture de fichier texte...
Sur chaque ligne, entre autres infos, j'ai l'identifiant de la ligne 1,2,3....,n

J'essai de récupérer le nombre de ligne totale du fichier pour insérer à la ligne suivante n+1 comme info.

Voilà ce que j'ai fait dans mon source

var L: TextFile;
nbLigne: longint;
begin
nbLigne := 0;
if FileExists(repertoire+'fichier.txt') then
begin
AssignFile(L,repertoire+'fichier.txt');
Reset(L);
While not SeekEOF(L) do begin
nbLigne := nbLigne + 1;
showmessage('Lecture ' + inttostr(nbLigne));
end;
CloseFile(L);
end;
end;

J'ai aussi tester avec EOF à la place de SeekEOF. Rien n'y fait, je boucle sans fin dans mon while.
Si quelqu'un à une idée pour me sortir de là ;-)

4 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
27 janv. 2006 à 16:46
var
TFT : TStringlist;
begin
TFT := TStringlist.create;
TFT.Loadfromfile(repertoire+'fichier.txt');
showmessage('Nombre de lignes : '+inttostr(TFT.Count));
TFT.Free;
end;

mais ton probleme viens qu'il faut faire comme cela :

nbligne := 0;

while not Eof(L) do begin
Readln(L);
Inc(NbLigne);
end;

ShowMessage(inttostr(nbligne));

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
27 janv. 2006 à 17:28
salut

le plus simple est de charger ton fichier dans une tstringlist: comme
te le dit F0xi et pour insérer à la ligne n+1 tu fais simplement

TFT.Append('texte a ajouter');

si tu veux utiliser par la suite ne fais pas TFT.free et mets TFT en variable globale!

@+

jlen
3
pandaspirit Messages postés 3 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 janvier 2006
27 janv. 2006 à 16:54
Merci beaucoup !!

Je m'incline devant ta première solution...
Heureusement que je suis novice sur delphi !!! ;-)
0
pandaspirit Messages postés 3 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 janvier 2006
28 janv. 2006 à 21:16
Merci merci ;-)
Nickel ! ça m'a bien aidé, et j'ai pu avancer !
0
Rejoignez-nous