Lecture fichier texte ligne par ligne

Signaler
Messages postés
9
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
18 juin 2003
-
Messages postés
9
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
18 juin 2003
-
J'utilise le code suivant pour copier le contenu d'un fichier texte dans une liste box (une ligne de list box pour chaque ligne du fichier) :

procedure TForm1.FormCreate(Sender: TObject);
var
F1: TextFile;
Ch: Char;
i:integer;
begin
AssignFile(F1, '.\plug2.xpl');
Reset(F1);
while not Eof(F1) do
begin
Readln(F1, Ch);
ListBox1.AddItem(Ch, ListBox1);
end;
CloseFile(F1);
end;

Mais la fonction Readln me retourne à chaque fois le premier caractère de la ligne au lieu de la ligne complète. Comment résoudre ce pb ?
A voir également:

4 réponses

Messages postés
9
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
18 juin 2003

Ecusez moi pour le dérangement ;-) J'avais juste oublié de remplacer Ch:Char part Ch: String ...
Voilà ce qui arrive quand on fait des copier-coller avec le fichier d'aide de Delpi ;-)
Messages postés
54
Date d'inscription
jeudi 3 janvier 2002
Statut
Membre
Dernière intervention
20 juillet 2006

Petit rappel : Un type Char , c'est un seul caractère.
Pour lire un certain nombre de carctères, il faut uitilser un ensemblr de caractère.
Remplace Ch :Char par Chn : String et cela marchera.
Salut A+.
http://philippe.gormand.free.fr/
Messages postés
4
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
14 mars 2002

Premier point : remplacer la déclaration ch : Char par ch : String;
Ainsi vous lirez toute la ligne.

Second point : trappez l'erreur en cas d'absence du fichier
{i-} reset(F1) { i+}
if ioresult <> 0 then ...

Troisième point
Je vous conseille d'indenter en décalant le code entre le begin et le End.

Bon courage.
Messages postés
9
Date d'inscription
vendredi 4 janvier 2002
Statut
Membre
Dernière intervention
18 juin 2003

Merci pour votre réponse, mais entre temps, j'ai trouvé une solution beaucoup plus simple :

ListBox1.Items.LoadFromFile(filename);

@+, Matt