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

Résolu
motoetmotards Messages postés 5 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 février 2008 - 23 mars 2006 à 10:54
motoetmotards Messages postés 5 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 février 2008 - 24 mars 2006 à 08:48
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 mars 2006 à 16:57
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
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
23 mars 2006 à 14:19
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
24 mars 2006 à 08:14
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 ]
0
motoetmotards Messages postés 5 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 février 2008
24 mars 2006 à 08:48
Merci pour votre réponse, j'vais re-tester, j'vous tiens au courant.
Merci de vortre rapidité !
@+
0
Rejoignez-nous