Lecture fichier texte ligne par ligne

MattXSFR Messages postés 9 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 18 juin 2003 - 5 janv. 2002 à 23:03
MattXSFR Messages postés 9 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 18 juin 2003 - 16 mars 2002 à 16:36
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 ?

4 réponses

MattXSFR Messages postés 9 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 18 juin 2003
5 janv. 2002 à 23:23
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 ;-)
0
PhGORMAND Messages postés 54 Date d'inscription jeudi 3 janvier 2002 Statut Membre Dernière intervention 20 juillet 2006
8 janv. 2002 à 12:14
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/
0
cs_MDR Messages postés 4 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 14 mars 2002
14 mars 2002 à 15:48
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.
0
MattXSFR Messages postés 9 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 18 juin 2003
16 mars 2002 à 16:36
Merci pour votre réponse, mais entre temps, j'ai trouvé une solution beaucoup plus simple :

ListBox1.Items.LoadFromFile(filename);

@+, Matt
0
Rejoignez-nous