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 les valeurs de toutes les clés d'une section d'un fichier .ini ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Points : 49
    Points
    49
    Par défaut Comment lire les valeurs de toutes les clés d'une section d'un fichier .ini ?
    Bonjour,

    Voila le code que j'essai de lire la totalité d'un fichier .INI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Section:=TStringList.Create;
    audits.ReadSections(Section);
    try
      For Compteur:=0 to Section.Count-1 do
      begin
      // Lecture des valeurs de la section Section[Compteur]
        Memo1.Lines.Add(#13#10+'['+Section[Compteur]+']');
        audits.ReadSectionValues(Section[Compteur],Memo1.Lines);
      end;
    finally
      Section.Free;
      audits.Free;
    end ;
    1. Peut-on remplacer "Memo1.Lines" par une chaine de type String

    2. Je n'arrive à lire les [Section] avec leur NomDeCle et leurs valeur

    [Transactions]
    Nombre de consommations=1
    nombre total=4
    Nom=1
    Prenom=1
    Numero de Badge=1
    Date de consommations=1
    Commentaires=1
    Nombre de consommations=1
    [1]
    Nom=1
    Prenom=1
    Numero de Badge=1
    Date de consommations=1
    Commentaires=1
    Nombre de consommations=1
    [2]
    Nom=
    Prenom=
    Numero de Badge=
    Date de consommations=
    Commentaires=
    Nombre de consommations=

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 549
    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 549
    Points : 25 119
    Points
    25 119
    Par défaut
    Balise CODE svp,

    1. Non, il faut un objet de type TStrings (une TStringList par exemple) et non une variable string

    2. Pour ma part, je n'utilise pas ReadSectionValues, je préfère lire valeur par valeur dans une boucle

    3.

    un code approximatif :
    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
      Sections := TStringList.Create;
      try
        Keys := TStringList.Create;
        try
          IniFile.ReadSections(Sections);
          for iSection := 0 to Sections.Count - 1 do
          begin
            Memo.Lines.Add(Format('[%s]', [Sections[iSection]]));
            IniFile.ReadSection(Sections[iSection], Keys);
            for iKey := 0 to Keys.Count - 1 do
            begin
              Memo.Lines.Add(Format('%s=%s', [Keys[iKey], IniFile.ReadString(Sections[iSection], Keys[iKey], '')); 
            end;      
          end;
        finally
          Keys.Free;
        end;
      finally
        Section.Free;
      end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  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 : 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 yann87 Voir le message
    1. Peut-on remplacer "Memo1.Lines" par une chaine de type String
    NON

    Citation Envoyé par yann87 Voir le message
    2. Je n'arrive à lire les [Section] avec leur NomDeCle et leurs valeur
    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
    function LireUneValeurDeMaSection(FileName, NomdeMaSection, NomDeMaValeur : string) : string;
    Var
      audits : TIniFile;
      ContenuSection : TStringList;
    begin
      audits := TIniFile.Create(FileName);
      ContenuSection := TStringList.create;
      try
         audits.ReadSectionValues(NomdeMaSection, ContenuSection);
         Result := ContenuSection.values[NomDeMaValeur];
      finally
        ContenuSection.Free;
        audits.Free;
        end ;
     end ;
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Points : 49
    Points
    49
    Par défaut Comment lire les valeurs de toutes les clés d'une section d'un fichier .ini ?
    Merci Yurck

    J'ai n'ai pas tout les éléments mais j'ai un peu modifier et cela retourne bien un string. Merci

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 549
    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 549
    Points : 25 119
    Points
    25 119
    Par défaut
    Euh, LireUneValeurDeMaSection c'est pas une version compliqué de ReadString du TIniFiles ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    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 ShaiLeTroll Voir le message
    Euh, LireUneValeurDeMaSection c'est pas une version compliqué de ReadString du TIniFiles ?
    Certes , il vaut mieux faire simple
    Citation Envoyé par ShaiLeTroll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Memo.Lines.Add(Format('%s=%s', [Keys[iKey], IniFile.ReadString(Sections[iSection], Keys[iKey], ''));
    c'est dingue quand on ne lit pas les questions qu'on puisse autant répondre à côté.
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

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

Discussions similaires

  1. [MySQL] Envoyer les valeur de toutes les colonnes dans un formulaire
    Par deteklover dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/02/2014, 09h14
  2. Réponses: 1
    Dernier message: 14/06/2013, 00h07
  3. Réponses: 1
    Dernier message: 06/10/2008, 12h04
  4. Réponses: 2
    Dernier message: 24/04/2008, 13h52
  5. Récuperer les valeurs de toutes les colonnes
    Par wishmastah dans le forum Access
    Réponses: 1
    Dernier message: 10/03/2006, 11h19

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