IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Comment lire plusieurs lignesd'un fichier ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut Comment lire plusieurs lignesd'un fichier ?
    Voila, je coice depuis 2 jours sur 'certainement' un rien .
    pourtant, pour tester, j'ai pris à la lettre des exemples sur les tutos

    Je veux lire plusieurs lignes d'1 fichier text et le remettre dans un Mémo

    Déja , je trouve bizarre que je sois obligé d'écrire Form2
    devant le memo.lines.add alors que le code est écrit sur l'unit2 donc Form2. Mais ; il a bien voulu compiler:

    Maintenant que la compile est faite, rien ne s'écrit dans la mémo, je ne vois vraiment pas pourquoi
    Si quelqu'un avait une idée : ci joint le bout de code défaillant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure LireFichier(Fich:string);
     Var
    F: TextFile;
     ligne:string;
    begin
    if not FileExists(Fich)  then exit;
    Assign(F,Fich);
    Reset(F);
    While not EOF do
    begin
    Readln(F,ligne);
    Form2.Memo.lines.add(ligne);
    end;
    Closefile(F);
    end;
     
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    LireFichier('D:\tutu2.txt');
    end;
    Pensez aux Balises "Code", NoisetteProd

  2. #2
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    il est normal que tu doives écrire form2 puisue ta procédure n'est pas une procédure de TForm2.

    Essaies

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure LireFichier(Fich : string; AMemo : TMemo);
    Var
     F: TextFile;
     ligne:string;
    begin
    if not FileExists(Fich) then exit;
    Assign(F,Fich);
    Reset(F);
    While not EOF(F) do
     begin
     Readln(F,ligne);
     AMemo.lines.add(ligne);
    end;
    Closefile(F);
    end; 
     
    procedure TForm2.Button2Click(Sender: TObject); 
    begin 
    LireFichier('D:\tutu2.txt'; Memo); 
    end;
    j'ai aussi remplacé "EOF" par "EOF(F)" (çà évitera une erreur I/O)

    et utilises les balises de code (c'est plus facile à lire)

  3. #3
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Pense à utiliser les balises code pour que ça soie plus clair

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     procedure TForm2.LireFichier(Fich:string); //il faut déclarer la procedure
    Var
      F: TextFile;
      ligne:string;
    begin
      if not FileExists(Fich) then exit;
      AssignFile(F,Fich);
      Reset(F);
      While not EOF(F) do begin
        Readln(F,ligne);
        Memo.lines.add(ligne);
      end;
      Closefile(F);
    end;
     
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    LireFichier('D:\tutu2.txt');
    end;
    J'ai corrigé de tête, mais normallement ça doit être correct

    Sinon, un truc qui marche bien, c'est Memo1.Lines.LoadFromFile ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    OK mais à la compil, Delphi me dit qu'il n'y a pas assez de paramètres originaux pour le code suivant ,????




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    LireFichier('D:\tutu2.txt'; Memo);
    end;

    Coment fait-on pour utiliser les balises ?[/code]

  5. #5
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    Pour utiliser les balises, tu cliques sur code avant le debut de ton code puis tu recliques sur code a la fin de ton code

  6. #6
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Si tu prend le code de Bjl, vérifies que la procédure est correctement déclarée. Apparemment, tu as laissé l'ancienne

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    OK mais à la compil, Delphi me dit qu'il n'y a pas assez de paramètres originaux pour le code suivant ,????
    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LireFichier('D:\tutu2.txt'; Memo);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LireFichier('D:\tutu2.txt', Memo);
    A+

  8. #8
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par pitango
    OK mais à la compil, Delphi me dit qu'il n'y a pas assez de paramètres originaux pour le code suivant ,????
    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LireFichier('D:\tutu2.txt'; Memo);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LireFichier('D:\tutu2.txt', Memo);
    A+
    pardon, c'est une erreur de frappe.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Merci beaucoup à tout le monde pour toutes ces indications.
    Mon probléme est réglé mais , une question subsiste.
    Car en titillant, j'avais trouvé une parade à mon problème : ne pas mettre le second indicateur de la déclaration de la procédure comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure LireFichier(Fich:string);
    ni dans l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    LireFichier ('D:\tutu2.txt');
    end;
    Quelle impact cela génere le fait de le metre ou non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Comment lire et stocker un fichier en J2ME?
    Par noutnout53 dans le forum Java ME
    Réponses: 7
    Dernier message: 08/06/2008, 12h57
  2. [VB]Comment lire plusieurs videos simultanément
    Par fablebab dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/04/2006, 11h22
  3. Réponses: 5
    Dernier message: 27/02/2006, 09h14
  4. [C#] Comment lire et parser un fichier html ?
    Par fix105 dans le forum C#
    Réponses: 4
    Dernier message: 28/01/2006, 15h38
  5. Réponses: 4
    Dernier message: 28/10/2005, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo