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 :

Problème pour mémoriser StringList


Sujet :

Delphi

  1. #1
    Membre du Club Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 66
    Points
    66
    Par défaut Problème pour mémoriser StringList
    Bonjour à tous,

    Je cherche à comparer le nom des fichiers '.exe' d'un dossier spécifique avec des strings chargées à partir d'un fichier ini.
    Voilà comment je m'y prends :
    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
     
    Function Stringsuspecte(S : String) : boolean;
    var
      Ini : TIniFile;
      Strs : TStringList;
      I: Integer;
    Begin
      Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'SUMBConf.ini');
      Strs := TStringList.Create();
      Ini.ReadSection('String', Strs);
      for I := 0 to Strs.Count- 1 do
      Begin
        if Pos(Strs.Strings[i],S)<>0 then
          begin
            Result := True;
            Exit();
          end;
      End;
      Result := False;
      Ini.Free;
    end;
    Le test ne se fait pas : l'itemindex max de ma stringlist Strs est à 0.
    Alors que mon fichier ini se compose comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Exclu]
     
    [String]
    ins
    Uninstall
    update
     
    [Ext]
    .lnk=
    .exe=
    Je ne comprends pas pourquoi Strs ne se remplit pas =X

    Merci de votre aide =)

    Omg...
    mon fichier ini...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Exclu]
    
     [String]
     ins=
     Uninstall=
     update=
    
     [Ext]
     .lnk=
     .exe=


    ^^
    Désolé pour le post..

  2. #2
    Membre du Club Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Pour ceux que ça intéresse :

    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
    Function Stringsuspecte(S : String; ini : String; section : String) : boolean;
    var
      Ini : TIniFile;
      Strs : TStringList;
      I: Integer;
    Begin
      Ini := TIniFile.Create(ini);
      Strs := TStringList.Create();
      Ini.ReadSection(section, Strs);
      for I := 0 to Strs.Count- 1 do
      Begin
        if Pos(Strs.Strings[i],S)<>0 then
          begin
            Result := True;
            Exit();
          end;
      End;
      Result := False;
      Ini.Free;
    end;
    True : il existe une valeur de la section du fichier ini contenue dans S
    False : le contraire ^^'

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut,

    Tu doit confondre SECTION et CLE.

    fichier.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [NAMESFILES]
    F1=Bonjour
    F2=Hello
    F3=Bye

    Sur un evenement on click d'un boutton.
    Mettre un Memo sur la form pour voir le résultat

    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
    procedure TForm1.Button2Click(Sender: TObject);
    Var
      LstFiles: TStringList;
      i: integer;
    begin
      LstFiles := TStringList.Create;
      LstFiles.Clear;
      LectureFichierINI(ExtractFilePath(Application.ExeName)+'Essai.ini', LstFiles, 'NAMESFILES', 'F');
     
      Memo1.Clear;
      for i := 0 to LstFiles.Count-1 do
      Begin
        Memo1.Lines.Add(LstFiles.Strings[i]);
      end;
      LstFiles.Free;
    end;
    Lecture du 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
    15
    16
    17
    18
    19
    20
    21
    22
     
    procedure TForm1.LectureFichierINI(vFileName: String; Lst: TStrings; Section :String; Cle: String);
    Var
      FichierIni : TInifile;
      S: String;
      i: integer;
    begin
      i := 1;
      Lst.Clear;
      FichierIni := TIniFile.Create(vFileName);
      Try
        repeat
          S := FichierIni.ReadString(Section,Cle + IntToStr(i), '');
          if S <> '' then begin
            Lst.Add(S);
          end;
          inc (i);
        until S = '';
      Finally
        if assigned(FichierIni) then FichierIni.Free;
      end;
    End;

    C'est un exemple , as toi de voir comment l'adapter à ton besoin.

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

Discussions similaires

  1. [fileupload] problème pour parser la requete
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 12
    Dernier message: 24/04/2008, 12h02
  2. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  3. C/asm : problème pour link
    Par SteelBox dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/04/2004, 23h03
  4. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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