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

Delphi Discussion :

lecture/écriture dans un fichier texte


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut lecture/écriture dans un fichier texte
    Salut les amis,
    Je souhaite lire & écrit dans un fichier texte. Mias là où je suis un peu perdu est que mon code :
    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
    21
    Procedure Enregistre;
    begin
        Table[NE].N:=Form1.EditNom.Text;
        Table[NE].P:=Form1.EditPrenoms.Text;
        Table[NE].DTN:=Form1.EditDtNaiss.Text;
        Table[NE].L:=Form1.EditLieu.Text;
        Chr(13);
    end;
     
    procedure TForm1.QuitterClick(Sender: TObject);
    begin
       if
       (EditNom.Text+EditPrenoms.Text+EditDtNaiss.Text<>'')
        then   Enregistre;
              Rewrite(F);
              For I:=1 to NbEnr do
              Write(F,Table[I]);
              CloseFile(F);
          Application.Terminate;
     
    end;
    suivant écrit mais pas comme je le souhaite dans mon fichier. Je voudrais avoir mes données sur plusieurs lignes de cette manière;
    nom, prénoms, date de naissance, lieu de laissance
    nom, prénoms, date de naissance, lieu de laissance
    etc..
    mais au conntraire mon programme les a écrit au kilométrique

    Voici mon code pour la lecture :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    procedure TForm1.FormActivate(Sender: TObject);
    begin
          Adresse.Clear;
          AssignFile(F,'C:\Badges.txt');
          {$I-}
          Reset(F);
          {$I-}
          NE:=1;
          if IOResult=0 then
            begin
              repeat
                Read(F,Enreg);
                  Table[NE]:=Enreg;
                  NE:=NE+1;
                Until Eof(F);
                NbEnr:=NE-1;{Nombre d'enrégistrement dans le fichier}
                CloseFile(F);
                NE:=1;{Numéro de l'enrégistrement courant}
                Affiche(NE);{Affichage du premier enrégistrement}
            end
            else
            begin
              with Enreg do
                begin
                  Table[1].N:='';
                  Table[1].P:='';
                  Table[1].DTN:='';
                  Table[1].L:='';
                end;
                NbEnr:=1;
              end;
    end;
    Ça fonctionne mais avec la manière dont je souhaiterais avoir les données je crois qu'il risque d'avoir un bug.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    Personnellement voir, des Reset dans un Activate et son Close sans un Event ... j'ai un peu de mal ... une fonction de lecture, avec chargement en mémoire pour l'affichage, une fonction d'écriture ... on ne laisse le fichier ouvert tout le temps comme ça (sauf en db mais c'est un serveur robuste qui tourne pas un QuitterClick ...)

    ton Chr(13); ne sert à rien ...

    Ensuite, si tu utilise un tableau de structure, j'ai fait quelque chose de similaire pour des tests (désolé c'est du code pourri de test, moins clean que du code de prod) ... je load le fichier dans une listbox, puis je veux modifier un item, je le modifie à la volée ... d'ailleurs dommage de ne pas avoir fourni la structure, cela aurait aidé à comprendre ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type
       TStructRec = packed record
          ID: Integer;
          Nom: string[50];
          Memo: string[255];
          Date: TDateTime;
       end;
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    procedure TFrmTestFichier.BtnLoadClick(Sender: TObject);
    var
       Fichier: file of TStructRec;
       TmpStructRec: TStructRec;
       i: Integer;
    begin
       if not FileExists(EdPathStructFile.Text) then begin
          ListBoxRecords.Items.Clear();
          ListBoxRecords.Items.Add('New');
          Exit; // Rien à Charger
       end else begin
          ListBoxRecords.Items.Clear();
          ListBoxRecords.Items.Add('New');
     
          AssignFile(Fichier, EdPathStructFile.Text);
          Reset(Fichier); //
          try
             while not Eof(Fichier) do begin
                Read(Fichier, TmpStructRec);
                i := ListBoxRecords.Items.Add(IntToStr(TmpStructRec.ID) + ' : ' + TmpStructRec.Nom);
                ListBoxRecords.Items.Objects[i] := Pointer(TmpStructRec.ID);
             end;
          finally
            CloseFile(Fichier);
          end;
       end;
    end;
     
     
    procedure TFrmTestFichier.BtnEcrireClick(Sender: TObject);
    var
       Fichier: file of TStructRec;
       TmpStructRec: TStructRec;
    begin
       ZeroMemory(@TmpStructRec, SizeOf(TmpStructRec));
       TmpStructRec.ID := StrToInt(EdID.Text);
       TmpStructRec.Nom := EdName.Text;
       TmpStructRec.Memo := EdMemo.Text;
       TmpStructRec.Date := Now();
     
     
       AssignFile(Fichier, EdPathStructFile.Text);
       if not FileExists(EdPathStructFile.Text) then begin
          ReWrite(Fichier);
       end else begin
          Reset(Fichier);
          Seek(Fichier, TmpStructRec.ID); // Magique le BlockSize est SizeOf(TStructRec); mais faudrait peut-être un test de longueur de fichier ...
       end;
       try
          Write(Fichier, TmpStructRec);
       finally
          CloseFile(Fichier);
       end;
     
       BtnLoad.Click();
    end;
    Et Comme toi, c'est un fichier binaire, tout à fait normal, ...

    donc pour toi je dirais de modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table[NE].EndMark := #13#10; // EndMark étant un String[2];

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Si le fichier texte est relativement court, utilise une TStringList C'est beaucoup plus facile
    Pour plus d'infos

  4. #4
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par the watcher
    Je voudrais avoir mes données sur plusieurs lignes
    Bonjour,
    Tu souhaites pouvoir lire ton fichier dans un éditeur ?

    Remplaces le write par writeln et read par readln

    a+

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    Pour le moment, il semble écrire des Structures ... ça lui compliquerait la vie d'ajouter un Parsing pour découper les buffer lu dans un Fichier Texte via TStringList ou TextFile ...

    Ensuite, il semble ne stocker QUE des chaines, il suffit d'ajouter deux octets pour avoir des lignes bon tout dépend si l'on déclare des Chaines Courtes qui vont ajouter leur longueur (du coup binaire) ou des Array[0..Max] of Char qui seront brut de décoffrage ...

  6. #6
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    yurck a écrit
    Tu souhaites pouvoir lire ton fichier dans un éditeur ?

    Remplaces le write par writeln et read par readln
    J'ai en éffet fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.QuitterClick(Sender: TObject);
    begin
       if
       (EditNom.Text+EditPrenoms.Text+EditDtNaiss.Text<>'')
        then   Enregistre;
              Rewrite(F);
              For I:=1 to NbEnr do
              Writeln(F,Table[I]);
              CloseFile(F);
          Application.Terminate;
    end;
    Impossible de compiler le prog :
    Type illegal dans une fonction write/writeln

  7. #7
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    j'oubliais:
    Voici mes déclarations :
    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
    Type
      Txt = record
        N, P : String[20];// Nom et Prenom
        DTN : String[10];//Date de naissance
        L : String[30];//Lieu de naissance
        T : String[20];
        M : String[20];
        end;
    var
      Form1: TForm1;
      F : File of Txt;
      Enreg : Txt;
      Table : Array[1..100] of Txt;
      NE : LongInt; {Numéro de l'enrégistrement courant}
      NbEnr : Integer; {Nombre d'enrégistrement}
      I : Integer;
      Ligne : String;
     
    implementation

  8. #8
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    NB :

    1) ton Chr(13) tout seul dans une procédure n'a aucun effet !

    2) Un fichier typé n'a jamais, au grand jamais, produit un fichier texte.

    Étudie la différence entre fichiers typés et fichiers texte.

  9. #9
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    En fait le
    il faut completement l'oublier. c'est un retour de charriot que j'était entrain de faire mais j'e l'ai abandonné.
    j'ai oublié de l'éffacer.

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    En fait, que veux tu vraiement ? un fichier lisible par NotePad ou un fichier qui tu puisses manipuler sans soucis avec ton application ... La Première Question est là !

    car comme le dit CapJack, un fichier de structure ne donnera jamais un fichier texte car tu auras le plus souvent des $00 pour les strings non rempli, il faut savoir que pour les chaines courtes, le premier octet indique la longueur utilisée ...

  11. #11
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Ok les amis je m'explique:
    Je veux pouvoir manipuler un fichier text (disons : individu.txt)
    dont la structure se présente comme suit:
    Nom, Prénoms, Date, Lieu
    Nom2, Prenom2, Date2, Lieu2
    Nom3, Prénoms3, Date3, Lieu3
    Nom4, Prenom4, Date4, Lieu4
    Nom5, Prénoms5, Date5, Lieu5
    NomN, PrenomN, DateN, LieuN

    Afficher les enrégistrements des ligne par ligne dans des composants edit avec un bouton de navogation mis en place.

    Le problème est que ce fichier est créer et rempli par un autre programme écrit dans un autre langage.

    Moi je veux juste pouvoir les faire afficher et si possible en ajouter

  12. #12
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Alors il ne faut pas utiliser un fichier typé de type File of..., mais un fichier texte de type TextFile, dont les lignes seront lues par readln. Occupons-nous de la lecture, l'écriture c'est une autre histoire.

    En fait, avec readln(f,s), on va lire dans la chaîne s la ligne courante du le fichier TextFile f. Il s'agit de séparer les différents champs. Pour ça, l'objet TStringList peut le faire automatiquement par sa propriété DelimitedText (par défaut, le délimiteur est justement une virgule, ça tombe bien !).

    Code à compléter :

    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
    21
    22
    23
    24
    25
    26
    var s:string;sl:TStringList;f:TextFile;
    ...
    begin
     sl := TStringList.Create;
     ...
     AssignFile(f,'truc.txt');
     Reset(f);
     ...
     readln(f,s);
     sl.DelimitedText := s;
     if sl.Count = 4 then // il y a bien quatre champs dans la ligne
      begin
       with Enreg do
        begin
         N   := sl[0];
         P   := sl[1];
         DTN := sl[2];
         L   := sl[3];
        end;
        ... // stocker enreg, autres traitements...
      end;
     ...
     CloseFile(f);
     ...
     sl.Free;
    end;

  13. #13
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Pour ma part, je suis d'accord avec Pedro,

    Utiliser uniquement le type TStringList simplifierait grandement la tache

    1 TStringList A pour charger le fichier, chaque élément est 'Nom, Prénoms, ...'
    1 TStringList B temporaire dont la propriété texte vaut l'élément courant de A (et dont le delimited text est la virgule )

    -> en ventilant A, B[ 0 ] = nom, B[ 1 ] = prénom ...

    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
    var
      i: Integer;
      LFichier, LLigne: TStringList;
    begin
      LFichier := TStringList.Create;
      LLigne := TStringList.Create;
      try
      LFichier.LoadFromFile( 'D:\test' );
      for i := 0 to LFichier.count - 1 do
        begin
        LLigne.DelimitedText := LFichier[ i ];
        ShowMessage( 'nom=' + LLigne[ 0 ] ); // ajouter des trim éventuellement
        ShowMessage( 'prenom' + LLigne[ 1 ] );
        ...
        end;
      finally LFichier.Free; LLigne.Free; end;

  14. #14
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par the watcher
    yurck a écrit des conneries

    Impossible de compiler le prog :
    Type illegal dans une fonction write/writeln
    Désolé, utilises alors la solution de ShaiLeTroll (voir ci dessus) qui reste dans la même philosophie et me semble être la + rapide à mettre en place.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table[NE].EndMark := #13#10; // EndMark étant un String[2];
    a+

  15. #15
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    Personnellement, je n'ai toujours pas compris quel était le vrai format du fichier, ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le problème est que ce fichier est créer et rempli par un autre programme écrit dans un autre langage.
    si un extrait d'un fichier de quelques enrecs était fourni on pourrait répondre, car j'ai vraiement l'impression qu'il y a confusion ...

  16. #16
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Voici un peu une partie du contenu du fichier en question:
    c'est fichier avec extension .txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ERRA          ,SEYDOU              ,06/2286/PC , 6e A      , 07-06-93 , 
    DJIRIGA        ,MARIE VIVIANE LOHORE,06/2355/PC , 6e A      , 02-12-95 , 
    KONE           ,FATOUMATA           ,06/2425/PC , 6e A      , 25-09-93 , 
    MADJINOU       ,RHODE PERSIDE       ,06/2499/PC , 6e A      , 17-09-94 , 
    KONE           ,ISSOUF              ,06/2502/PC , 6e A      , 22-08-94 , 
    KONE           ,AICHA               ,06/2505/PC , 6e A      , 24-06-94 ,
    les virgules sont en fait des séparateurs,

  17. #17
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Voilà !

    Donc, tu lis le fichier texte, soit avec la méthode que je décris (readln sur TextFile), soit avec celle de Pedro (LoadFromFile d'un TStringList), et tu utilises un TStringlist temporaire pour séparer les éléments comme je te l'ai décris.

  18. #18
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    J'ai repris progressivement mon prog. qu'en pensez-vous;
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Type
        Txt = record
            N, P : String[20];
    end;
     
    var
      Form1: TForm1;
      F : File of Txt;
      Enreg : Txt;
      Table : Array[1..100] of Txt;
      NE : LongINt; {Numéro de l'enrégistrement courant}
      NbEnr : Integer ; {Nombre d'enrégistrement}
      I : Integer;
     
     
    implementation
     
    {$R *.dfm}
     
    Procedure Afficher (Enr : Integer);
    begin
        Form1.EditNom.Text:=Table[Enr].N;//Affiche le nom
        Form1.EditPrenoms.Text:=Table[Enr].P;//Affiche le prenoms
    end;
     
    procedure TForm1.QuitterClick(Sender: TObject);
    begin
        Application.Terminate;
    end;
     
    end.

  19. #19
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Le programme se lance correctement mais mais les données ne s'affichent pas:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Procedure Afficher (Enr : Integer);
    begin
        Form1.EditNom.Text:=Table[Enr].N;//Affiche le nom
        Form1.EditPrenoms.Text:=Table[Enr].P;//Affiche le prenoms
    end;
     
    procedure TForm1.QuitterClick(Sender: TObject);
    begin
        Application.Terminate;
    end;
     
    procedure TForm1.FormActivate(Sender: TObject);
    var
    s:string;sl:TStringList;
    F:TextFile;
    begin
     sl := TStringList.Create;
     
     AssignFile(F,'C:\Badges.txt');
     Reset(F);
     
     readln(F,s);
     sl.DelimitedText := s;
     if sl.Count = 2 then // il y a deux champs à la ligne
      begin
       with Enreg do
        begin
         N   := sl[0];
         P   := sl[1];
        // DTN := sl[2];
         //L   := sl[3];
        end;
     
      end;
     
     CloseFile(f);
     
     sl.Free;
    end;

  20. #20
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    Question bête, appeles-tu "Afficher" ?

    Ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Form1.EditNom.Text:=Table[Enr].N;//Affiche le nom
        Form1.EditPrenoms.Text:=Table[Enr].P;//Affiche le prenoms
    c'est étrange non ?, ceci est plus logique non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Afficher (Enr : Integer);
    begin
       EditNom.Text:=Table[Enr].N;//Affiche le nom
       EditPrenoms.Text:=Table[Enr].P;//Affiche le prenoms
    end;

Discussions similaires

  1. lecture / écriture dans des fichiers text
    Par nadir CoCo dans le forum C++
    Réponses: 6
    Dernier message: 28/06/2012, 09h10
  2. lecture-écriture dans un fichier text
    Par guefrachi dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 29/07/2010, 20h28
  3. Réponses: 4
    Dernier message: 02/05/2007, 10h41
  4. lecture écriture dans un fichier
    Par poukill dans le forum C++
    Réponses: 9
    Dernier message: 23/05/2006, 11h02
  5. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15

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