J'ai trouvé sur internet des codes très pratiques pour creer et lire des fichiers INI.
Par contre, il n'était à chaque fois possible d'ajouter ou écraser une valeur.
J'ai eu beau chercher (pas assez peut-être), je n'ai pas trouvé de fonction
permettant de supprimer une section entière.
J'ai donc relevé mes petites manches et écrit cette fonction que voici.
Source / Exemple :
'Supprime une section d'un fichier INI crée avec l'INI API
Public Sub DeleteIniSection(Filename As String, Section As String)
Dim IniLine As String
Dim SectionFound As Boolean
Dim NewSectionAfterRemoval As Boolean
Open Filename For Input As 1 'On ouvre le fichier donné en parametre
Open Filename + ".bak" For Output As #2 'Ce fichier collectera les sections que l'on souhaite garder
SectionFound = False
NewSectionAfterRemoval = False
Input #1, IniLine 'on chercher la bonne section
While Not EOF(1)
If Trim$(IniLine) = "[" + Trim$(Section) + "]" Then 'Si la section est celle que l'on cherche
SectionFound = True
While (Not EOF(1)) And SectionFound 'on saute tout simplement la section
Input #1, IniLine
If Left$(IniLine, 1) = "[" Then 'jusqu'à ce qu'une nouvelle section soit trouvée
SectionFound = False
NewSectionAfterRemoval = True
Print #2, IniLine
End If
Wend
Else
If Not EOF(1) Then Print #2, IniLine
End If
If Not EOF(1) Then Input #1, IniLine
Wend
If NewSectionAfterRemoval Then Print #2, IniLine 'cette bidouille est necessaire pour eviter une duplication ou une suppression de la derniere ligne de l'INI...
Close #2
Close #1
Kill Filename 'on inverse les fichiers
FileCopy Filename + ".bak", Filename
Kill Filename + ".bak"
End Sub
Conclusion :
Normalement les commentaires devraient suffire.
Pour l'appeller, c'est tout bête :
DeleteIniSection (nom_du_fichier_ini, nom_de_la_section_a_supprimer)
Bonne utilisation.
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.