Fichier INI : Récupérer les Clé & les valeurs qui leurs correspondent
Bonjour,
Je suis entrain de faire un petit exécutable qui contient un PopupMenu. Et je voudrais charger celui-ci à partir d'un fichier INI, et créer un objet pour chaque ligne du fichier INI et lorsque je clique sur cet objet je parcours le chemin contenu dans la valeur correspondante au 'caption' de l'objet.
Je voudrais alors savoir comment récupérer les clés d'un fichier INI et les valeurs qui leurs correspondent, je m'explique :
Mettons que mon fichier INI se compose comme ceci :
Code:
1 2 3 4
| [Item]
PremierItem=ValeurItem1
SecondItem=ValeurItem2
[...] |
PremierItem correspondrait au 'caption' de l'objet à créer, ValeurItem1 correspondrait au chemin à parcourir lorsque je clique sur PremierItem.
Voilà ma procédure servant à créer l'objet en question :
Code:
1 2 3 4 5 6 7 8
| procedure AjouterUnItem(PopupMenu:TMenuItem;FichierIniACharger,Section,Cle,default:String);
begin
nomitem:=form5.edit1.Text;
diritem:=Form5.edit2.Text;
MenuItem:=TMenuItem.Create(PopupMenu);
MenuItem.Caption:=Form5.edit1.text;
PopupMenu.Add(MenuItem);
end; |
La procédure de parcours du dossier :
Code:
1 2 3 4 5 6 7 8 9 10
| form2.ListBox1.Items.Clear;
Chemin := ;//Valeur du fichier ini
If FindFirst(Chemin+'*.*',faAnyFile,Info)=0 Then
Begin
Repeat
If (Info.Attr And faDirectory)=0
Then form2.ListBox1.Items.Add(Info.FindData.cFileName); //affichage des fichier
Until FindNext(Info)<>0;
FindClose(Info);
End; |
Et la procédure de récupération des clés et valeurs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| procedure traitement();
begin //PARTIE DE CREATION DU POPUPMENU
if not fileexists('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini') then
begin
ini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini');
Ini.WriteString('FICHIER DU POPUPMENU', 'CE FICHIER NE DOIT EN AUCUN CAS ETRE SUPPRIME', '');
end
else begin
ini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini');
//C'est ici que je bloque. J'ai essayé de lire la section entiere avec "readsectionvalues" mais je n'ai pas le résultat espéré
end;
end; |
J'ai tout fais (Création de l'objet au bon endroit, affectation de l'évènement, inscription dans le fichier ini), il me manque juste à pouvoir le charger...
Quelqu'un aurait une idée ?
Merci d'avance. :D