Lire une valeur dans un fichier INI [Résolu]

cs_bionicleman 8 Messages postés mardi 13 mars 2007Date d'inscription 9 avril 2008 Dernière intervention - 8 avril 2008 à 18:59 - Dernière réponse : cs_bionicleman 8 Messages postés mardi 13 mars 2007Date d'inscription 9 avril 2008 Dernière intervention
- 9 avril 2008 à 12:27
    Bonjour,
J'ai un problème avec mon projet, en quelques mots :
C'est un petit logiciel qui me permet de lancer des vidéos, des images... à partir d'un TPopUpMenu.
Pour ce faire, j'ai besoin de créer dynamiquement les objets de mon popupmenu (ceci est fait), ces objets sont inscrits dans un fichier INI (sous la forme Nom_de_l_objet=Chemin_de_l_objet).
Je dois alors lire le fichier INI à la création de ma forme afin de recréer les objets précédements ajoutés (cela est aussi fait ).
Lorsque je clique sur un objet créé dynamiquement j'exécute un évènement que j'ai créé ;
Procedure TForm5.AjoutClic(Sender: TObject);
var
  nom: string;
  chemin: string;
Begin
  //RECHERCHE DANS LE INI DE LA CLE 'chemin', RECUPERER LA VALEUR
  ini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini'); //ouverture du INI
  form2.ListBox1.Items.Clear; //effacement de la listbox
  nom:=TmenuItem(sender).Caption; //la valeur de la variable est bonne 
  chemin:=ini.ReadString('Items', nom, 'F:\'); //la variable chemin contient tout le temps la valeur 'F:\'
  //showmessage('chemin : '+chemin);
//inscription des fichiers trouvés dans la listbox
  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;
  ini.Free;
End;

 mais mon problème survient lors de l'affectation de la valeur contenu dans le INI à la variable 'chemin', la variable 'chemin' contient tout le temps la valeur 'F:\'. je ne vois pas ce qu'il peut se passer .
Si vous avez une idée, elle est la bienvenue =D
Merci d'avance !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_bionicleman 8 Messages postés mardi 13 mars 2007Date d'inscription 9 avril 2008 Dernière intervention - 9 avril 2008 à 12:27
3
Merci
Bonjour à tous,
Mon problème est réglé :
http://www.developpez.net/forums/showthread.php?t=520344
Merci de votre écoute

Merci cs_bionicleman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de cs_bionicleman
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 8 avril 2008 à 19:29
0
Merci
toi 89 ans et moi 107 donc..

chemin:=ini.ReadString('Items', nom, 'F:\'); //la variable chemin

'F:\', c'est la valeur par défaut du ReadString..

c'est-à-dire si :

la section n'existe pas ;
la clé n'existe pas ;
la valeur de données n'a pas été affectée pour la clé.

çà devrait t'aider..

cantador
Commenter la réponse de cs_cantador
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 8 avril 2008 à 19:30
0
Merci
et 'F:\'  n'est pas une variable

cantador
Commenter la réponse de cs_cantador
cs_bionicleman 8 Messages postés mardi 13 mars 2007Date d'inscription 9 avril 2008 Dernière intervention - 8 avril 2008 à 20:11
0
Merci
Salut Cantador,
Effectivement tu as raison, la section "Items" n'existe pas dans mon fichier INI, par contre la section "Item" existe bel et bien, je viens de corriger cette erreur mais malheureusement j'ai toujours le même problème...
Commenter la réponse de cs_bionicleman
Utilisateur anonyme - 8 avril 2008 à 20:49
0
Merci
chemin:=ini.ReadString('Items', nom, 'F:\');

La fonction affecte une valeur par défaut 'F:\' qui est renvoyé si la section ou la clé n'existe pas ou si il n'y a pas de valeur affectée à la clé. Tu dois te trouver dans un de ces cas de figure et donc tu récupères ta valeur par défaut.
Commenter la réponse de Utilisateur anonyme
cs_bionicleman 8 Messages postés mardi 13 mars 2007Date d'inscription 9 avril 2008 Dernière intervention - 8 avril 2008 à 22:14
0
Merci
Tu as raison, j'avais oublié de la préciser mais la variable 'nom' a une valeur qui existe, puisqu'elle est le caption de l'objet cliqué; ce caption existe dans le fichier INI puisque le caption de l'objet est chargé dynamiquement avec le  fichier INI
si ce n'est toujours pas très clair pour vous : http://www.developpez.net/forums/showthread.php?t=520344

Merci d'avance =D
Commenter la réponse de cs_bionicleman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.