Je cherche a lire le contenu d'un Fichier ini (en global avec FileIni.ReadSections et FileIni.ReadSectionValues) et à créer des icones dans un TListview avec les éléments contenu dans mon fichier ini. Le but etant d'executer Un ShellExecute (sur le PATH et eventuellement le Parametre s'il existe) en double cliquant sur les icones du TListview.
Est-ce que ma boucle vous parait convenable ? (en fait, je tatonne par essai successifs), je m'approche mais c'est pas terrible...
D'autre part, ListItem.Caption := Valeurs.Strings [0];
renvoie toute la chaine : "clé = valeur" de la section alors que juste la valeur m'interresse (ex : "Mon Dossier", "Mon planning"), Strings [0];
ne semble pas être la bonne commande...
Le fichier ini est structuré ainsi :
[1]
NAME = "Mon Dossier"
SUBTITLE = "Affiche le contenu de votre dossier personnel"
PATH = c:/windows/system32/calc.exe //pour l'exemple
PARAM =
ICON = 1
[2]
NAME = "Mon Planning"
SUBTITLE = "Affiche le contenu du planning"
PATH = c:/windows/system32/cmd.exe
PARAM =
ICON = 2
etc...
Mon code est le suivant :
Merci de vos suggestions,
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 var FileIni : TIniFile; Compteur : Integer; Section : TStringList; //Liste des sections du fichier ini Valeurs : TStringList; //Liste les clés et les valeurs ListItem : TListItem; i : Integer; begin try begin FileIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\QF.ini'); Section:=TStringList.Create; Valeurs:=TStringList.Create; // Lit les noms de toutes les sections d'un fichier INI FileIni.ReadSections(Section); For Compteur:=0 to Section.Count-1 do begin with ListView1 do ListItem := Items.Add; //Ajoute un Item pour chaque Section //lit les clés et les valeurs de toutes les clés d'une section particulière d'un fichier INI FileIni.ReadSectionValues(Section[Compteur],Valeurs); for i:=0 to Valeurs.Count-1 do ListItem.Caption := Valeurs.Strings [0]; //Titre des Items //ListItem.SubItems.Add(Valeurs.Strings[1]); end; end; finally FileIni.Free ; Section.Free; Valeurs.Free; end; end;
Denis
Partager