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 et ecriture fichier txt


Sujet :

Delphi

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

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Lecture et ecriture fichier txt
    bonjour,

    Je souhaite ecrire et lire dans un fichier txt.

    Voici mon programme

    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
    procedure TForm1.Button2Click(Sender: TObject);
    Var
      Fich_out    : TextFile;
      Ligne_out : string;
      i : integer;
    begin
    //lire tous les fichier
    assignFile(fich_OUT,'d:\toto.txt');
    reset(fich_out);
     
    ComboBox1.Clear;
     
    while not eof (fich_out)
     do begin
     readln(fich_out,Ligne_out);
     ComboBox1.Items.Add(Ligne_out);
     end;
     
     
    CloseFile(Fich_out);
    rewrite(fich_out);
     
    //Ecriture des ancienne ligne
    For i:=0 to combobox1.Items.count-1
      do begin
      Ligne_out:=ComboBox1.Items[i];
      writeLn(Fich_out,Ligne_out);
      end;
    Writeln(Fich_out,'toto');
     
    //Ecriture de la nouvelle ligne
    CloseFile(Fich_out);
    end;
    Je trouve cette methode tres bete car je suis obliger de recrire tous le fichier.

    Avez vous d'autre methode plus simple ?

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Salut

    Regarde du cote du TStringList et ces metodes LoadFromFile et SaveToFile (on doit penser que la propieté Items de combo est un TStrings )

    A+

  3. #3
    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 : 14
    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
    Bonjour,

    Append

    et je livre mes sources (F1 sous delphi)

    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
     
      f: TextFile;
    begin
      if OpenDialog1.Execute then
      begin                    { Ouverture d'un fichier texte }
        AssignFile(f, OpenDialog1.FileName);
        Append(f);
        Writeln(f, 'J''ajoute quelque chose à la fin du fichier.'); 
        { Insérer ici un code nécessitant un Flush avant de fermer le fichier }
        Flush(f);  { Pour que le texte soit réellement écrit dans le fichier }
        CloseFile(f);
      end;
     
    end;
    Ceci dit si tu veux remplir ta combobox essie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ComboBox1.Items.LoadFromFile('d:\toto.txt');
    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Juste pour info, il n'est pas possible d'insérer des données au début d'un fichier sans être obligé de le reécrire en entier (faire une copie). La fonction Append n'est valable que dans le cas où l'on veut ajouter des données à la fin du fichier, à+
    De retour parmis vous après 10 ans!!

  5. #5
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    Petite question :

    C'est la premièrefois que jefois ce FLUSH pour un fichier texte (ou fichier tout court même) ... à quoi sert-il ?
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Je te conseille vivement d'utiliser un TStringStream plutôt qu'un TextFile, c'est nettement plus agréable à manipuler...
    "It's more fun to compute !"

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 699
    Points : 15 042
    Points
    15 042
    Par défaut
    C'est la premièrefois que jefois ce FLUSH pour un fichier texte (ou fichier tout court même) ... à quoi sert-il ?
    Ça vide le cache disque : on est sûr (normalement - lol) que c'est écrit sur le dur. Sinon, y a toujours un 'tit temps de latence, et si la machine crashe *juste avant*, t'as tout paumé !

    HTH,
    JP
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    D'accord, merci de ton aide
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  9. #9
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    je sais pas dans quel contexte tu veut écrire dans ficher texte pour si c'est pas dans un but pédagogique j'utiliserais bien un TStringList avec c'est fonctionnalité et je terminerai avec un SaveToFile.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Merci a tous pour vos reponse.

    je prefere utilise TextFile au lieu de TStringStream car je dois traiter mes données ligne par ligne.

    c'est a dire : une ligne est un ensemble de données. C'est un fichier texte au format CSV.

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Dans ce cas, un TStringList est plus approprié il me semble...
    De retour parmis vous après 10 ans!!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Dans ce cas, un TStringList est plus approprié il me semble...
    très bonne remarque Sub0

    Je viens de tester cela me parait plus simple en utilisant

  13. #13
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par jeanmy
    très bonne remarque Sub0

    Je viens de tester cela me parait plus simple en utilisant

    je vous l'avez déja recomander.

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

Discussions similaires

  1. Ecriture et lecture d'un fichier .txt public
    Par Débutant2 dans le forum Android
    Réponses: 5
    Dernier message: 31/05/2015, 14h07
  2. [XL-2003] Lecture/Ecriture fichier txt - Problème caractères spéciaux
    Par Blencastreur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/06/2012, 19h08
  3. Lecture/ecriture fichier txt
    Par kmizgier dans le forum C
    Réponses: 5
    Dernier message: 07/12/2009, 22h12
  4. PL/SQL lecture/ecriture fichier txt
    Par stos dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/05/2006, 13h19
  5. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 21h40

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