Page 1 sur 1

IniWrite section

Posté : dim. 23 mai 2021 10:34
par YuChan
Bonjour, je suis a la recherche d'un solution pour mon probleme.

Je dispose d'un fichier texte et dedans j’écris sa :

Code : Tout sélectionner

[START]
key1=1
Key2=2
Mais comment écrire a la fin

Code : Tout sélectionner

[END]
Je bloque car le code ressemble a ça

Code : Tout sélectionner

IniWrite($fFile, "END", "key1", 3)
Du coup sa écrit bien END mais aussi la cles et sa valeur.

Comment écrire juste [FIN]

J'ai bien trouvé ça mais sa me parait pas terrible

Code : Tout sélectionner

$aSection =  ""

$ligne1 = FileReadLine($fFile,1)
IniWriteSection($fFile, "General", $aSection)
Merci

Re: IniWrite section

Posté : dim. 23 mai 2021 12:09
par jchd
La notion d'ordre des sections dans un fichier .INI est une illusion qui s'évapore dans la pratique. Dès qu'on fait un IniWrite ou IniWriteSection, l'ordre des sections peut être légitimement bouleversé sans que la sémantique du fichier en soit changée.

Les sections d'un .INI c''est comme des clés sur un anneau : quelque soit l'ordre des clés [qui dépend de quel côté on prend l'anneau et de quelle clé est vue comme le point de départ], la clé du garage ouvrira toujours la porte du garage.

Re: IniWrite section

Posté : dim. 23 mai 2021 15:02
par Tlem
Une idée possible, serait de lire toutes les sections et clefs existantes en mémoire, de mettre à jour celle-ci en mémoire puis de supprimer le fichier ini existant afin de le recréer avec les nouvelles valeurs. Un fois fait un FileWrite (append) permettra d'écrire "[Fin]" à la fin du fichier.

Maintenant cette manière de procéder n'est pas orthodoxe et le fait de rajouter [Fin] dans un fichier ini n'a pas vraiment de sens...