Fichiers ini et TListview
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 :
Code:
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; |
Merci de vos suggestions,
Denis