Delphi : Fichiers INI : Ecrire plusieurs elements dans meme section ???

Résolu
Signaler
Messages postés
5
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 février 2008
-
Messages postés
5
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 février 2008
-
Bonjour.

Je suis en stage et dois développer une appli de réparation de fichiers ini.

Dans mon programme delphi, j'ai une array contenant des strings caractérisants le fichier ini (nom fichier,section,nom elt,valeur).

Je voudrai ecrire dans ce fichier les differentes valeurs dans une meme section, mais a chaque ecriture avec WriteString, cela efface la valeur précédente et remplace avec la nouvelle.

Par exemple : Au départ mon fichier ini est tel que :

*Fichier abc.ini :

[Section 1]
Elt1 = Valeur1
Elt2 = Valeur2

Si j'utilise la méthode :
WriteString('Section 1','Elt3','Valeur3')

Le fichier devient :

*Fichier abc.ini :



[Section 1]

Elt3 = Valeur3

Les données précédentes ont été effacées, est-ce que quelqun a la solution a ce problème

Merci beaucoup par avance !!!

@ bientot sur le forum

4 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,
ton problème viens d'ailleurs je pense, l'utilisation de WriteString ne réécris pas les entrées existantes à moins qu'on lui demande mais du moment que "Ident" est unique il l'ajoute au fichier.

Voici un petit exemple qui fonctionne:
procedure TForm1.Button11Click(Sender: TObject);
Var I, Nbr : Integer;
begin
With TIniFile.Create('c:\abc.ini') do
Begin
Nbr := ReadInteger('Nombres d''entrées', 'Nbr', 1);
For I : = Nbr to Nbr + 4 do
WriteString('Section 1', 'Idx'+ IntToStR(I), 'Valeur Teste');
WriteInteger('Nombres d''entrées', 'Nbr', I);
Free;
End;
end;

@+
Cirec
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Salut,

Je confirme ce que dit Cirec, et, à mon avis, tu ne modifie pas ton fichier ini mais tu en crées un nouveau ! Vérifie le nom complet (répertoire inclus) du fichier ini d'origine et celui que tu crées pour écrire (
TIniFile.Create(NomDuFichierIni) ).

Ken@vo

<hr size="2" width="100%">Code, Code, Codec !

[%3C/body ]
Messages postés
5
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 février 2008

Merci pour votre réponse, j'vais re-tester, j'vous tiens au courant.
Merci de vortre rapidité !
@+