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 :

comment enregistrer un memo1 dans un fichier ini svp


Sujet :

Delphi

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut Merci ca marche nickel
    Citation Envoyé par Andry Voir le message
    OK.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure TfrmTest.StringsToINI(aStrings: TStrings; aINIFile: String);
    est une methode de ma classe TfrmTest.
    Il prend en paramètre une variable de type TStrings et un autre de type String.(En sachant que les items/lines d'un memo est de type TStrings).
    Mais bon. Tu voulais un exemple concret donc je vais te macher le travail :
    Préalable :
    - On a2 Edits (edVal1 et edVal2) et 1 memo (mmVal3) sur la fiche.
    - On va aussi utiliser un TSaveDialog (dlgSave) pour le nom du fichier
    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
     
    //Enregistrement dans un fichier INI
    Procedure EnregistrerValeursDansINI;
    var
        i : Integer;
    begin
        if dlgSave.Execute then
        begin
            With TIniFile.Create(dlgSave.Filename) do
            try
                //Traitement des 2 Edits edVal1 et edVal2.
                WriteString('EDIT','edVal1',edVal1.Text);
                WriteString('EDIT','edVal2',edVal2.Text);            
                //Traitement des lignes du Memo.
                // 1° Ecriture du nombre de ligne.
                WriteInteger('MEMO','Count',mmVal3.Lines.Count);
                // 2° Parcours des lignes du Memo mmVal3
                for i := 0 to mmVal3.Lines.Count -1 do
                begin
                    // 3° Ecriture de chaque ligne du Memo.
                    WriteString('MEMO',Format('Line%d',[i+1]),mmVal3.Lines[i]);
                end;
            finally
                Free;
            end;
        end;
    end;
    Je pense que c'est assez clair maintenant.

    Courage.
    Desoler d'avoir etait si long a comprendre merci c'est sympat .
    Je vais bien relire toute les reponces
    Merci ca marche supers j'avais des problemes mes avec cette exemple j'ai tres bien compris
    Maintenant si je veut les lires est que je peu utilise la meme syntaxe ?

  2. #22
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Bien sur, la lecture se fait avec Readxxxx.
    Il faut en particulier faire attention au moment de la recupération pour le mémo, à lire d'abord la valeur de Count. Et ensuite utiliser cette valeur pour la boucle.
    Sinon le squellette est pareil.

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut Bojours
    Citation Envoyé par Andry Voir le message
    Bien sur, la lecture se fait avec Readxxxx.
    Il faut en particulier faire attention au moment de la recupération pour le mémo, à lire d'abord la valeur de Count. Et ensuite utiliser cette valeur pour la boucle.
    Sinon le squellette est pareil.
    J'ai encore un petit souci concernant la récuperation de mes édit et de mon memo1 j'ai bien reussit a lire mes édit1 et édit 2 mais je n'arrive pas a récuperer mon memo1
    je pense avoir fait une erreur dans ma programmation

    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
     
    Procedure  Tform1.ouvrir1click(sebder: Tobject);
    Var
       I : Integer;
    Begin
       if opendialog1.execute then
       begin
             With Tinifile.create(opendiaolog1.filename) do
             try
                  edit1.text:=Readstring('edit','edit1.text',edit1.text);
                  edit2.text:=Readstring('edit',edit2.text',edit2.text);
                  ReadInteger('memo','count',memo1.lines.count);
                  FOR I:=0 to memo1.lines.count -1 do
                  begin 
                  Readstring('MEMO',Format('Line%d,[i+1]),memo1.lines[i];
        end;
             finally
                 free;
    end;
    end;
    end;
    end.
    Je n'arrive pas a voir ou ca coince
    merci encore

  4. #24
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il faut lire la valeur de Count, puis utiliser cette valeur pour lire chacune des lignes du mémo.

    Ce qui donne:
    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 TForm1.Button1Click(Sender: TObject);
    var
      I, Count: Integer;
    begin
      if OpenDialog1.Execute then
      begin
        with TIniFile.Create(OpenDialog1.FileName) do
        try
          Edit1.Text := Readstring('EDIT', 'Edit1', '');
          Edit2.Text := Readstring('EDIT', 'Edit2', '');
          Count := ReadInteger('MEMO', 'Count', 0);
          for I := 0 to Count - 1 do
          begin
            Memo1.Lines.Add(ReadString('MEMO', Format('Line%d', [I + 1]), ''));
          end;
        finally
          Free;
        end;
      end;
    end;
    @+ Claudius

  5. #25
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Citation Envoyé par moldock Voir le message
    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
     
    Procedure  Tform1.ouvrir1click(sebder: Tobject);
    Var
       I : Integer;
       LineCount : Integer; // A rajouter pour recuperer le nb de lignes
    Begin
        if opendialog1.execute then
        begin
            With Tinifile.create(opendiaolog1.filename) do
            try
                //Syntaxe Function ReadXXXXX(Section,Clé,Valeur par défaut): Type XXXXX
                edit1.text := Readstring('edit','edit1.text','');//Metons rien si Section/clé introuvable
                edit2.text := Readstring('edit','edit2.text','');//Metons rien si Section/clé introuvable
                //On va mettre dans LineCount le nombre de lignes qu'on a précédemment enregistrer.
                LineCount  := ReadInteger('memo','count',0);//Metons 0 si Section/clé introuvable
                memo1.Lines.Clear;//Effaçon le contenue de notre memo.
                //Si LineCount >=1, on a LineCounte -1  lignes a recuperer
                if LineCount >= 1 then
                begin
                    FOR I:=0 to LineCount -1 do
                        memo1.Lines.Add(Readstring('MEMO',Format('Line%d,[i+1]),''));
                end;
            finally
                free;
            end;
        end;
    end;
    Voilà. C'est corrigé.
    Je suis grillé par [FONT=&quot]Cl@udius [/FONT]
    A mon avis, tu n'as pas beaucoup chercher.
    A+

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut Merci a tous les deux
    Citation Envoyé par Andry Voir le message
    Voilà. C'est corrigé.
    Je suis grillé par [FONT=&quot]Cl@udius [/FONT]
    A mon avis, tu n'as pas beaucoup chercher.
    A+
    Je vais essayer ce soir
    Merci encore je vais plancher dessus pour bien comprendre le processus
    merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. comment enregistrer les resultats dans un fichier
    Par cmoi_doudi dans le forum JBuilder
    Réponses: 2
    Dernier message: 23/05/2008, 02h55
  2. Réponses: 6
    Dernier message: 05/02/2008, 22h52
  3. Comment écrire une section dans un fichier ini?
    Par Jayceblaster dans le forum Delphi
    Réponses: 5
    Dernier message: 26/06/2006, 14h08
  4. Comment enregistrer une string dans un fichier
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/09/2005, 14h52

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