Sur le forum, beaucoup on demander comment on pouvait supprimer des sections dans les fichier Ini. Moi même, j'ai poser la question. Mais finalement ne recevant pas réponse, je me suis penché sur le problème. Et j'ai trouvé la solution. Voilà je vous dévoile la fonction.
Attention !!! ObjectDext est un TextBox ou un Label
Allez bonne prog.
P.S : Si vous trouvé plus simple veuillez me le faire parvenir.
Inc@nus.
Source / Exemple :
Private Function SupprimerDansIni(FichierPathOpen As String, ObjectDest As Object, Section As String)
'ObjectDest est un TextBox ou un Label
'Déclaration des variable
Dim Suite As String
Dim LigneLue As String
'Mise à zéro de suite
Suite = 0
'Nettoyage de l'object
ObjectDest = ""
'Ouverture du fichier en mode lecture
Open FichierPathOpen For Input As #1
'Jusqu'à la fin du fichier ...
Do Until EOF(1)
'... la ligne lue est ...
Line Input #1, LigneLue
'... Si cette ligne lue est égale à la section à supprimer alors...
If LigneLue = "[" & Section & "]" Then
'...suite=2...
Suite = 2
'...Sinon si le première caractère de gauche est [ alors...
ElseIf Left(LigneLue, 1) = "[" Then
'...Si notre object n'est pas vide alors...
If ObjectDest <> "" Then
'...notre object est égal au contenu de cet object + une nouvelle ligne + la ligne lue...
ObjectDest = ObjectDest + vbNewLine + LigneLue
'...sinon si notre object est vide alors...
Else
'...notre object est égal à la ligne lue...
ObjectDest = LigneLue
'...fin de cette condition...
End If
'... suite=1...
Suite = 1
'...Sinon si suite=1 alors...
ElseIf Suite = 1 Then
'...Si notre object n'est pas vide alors...
If ObjectDest <> "" Then
'...notre object est égal au contenu de cet object + une nouvelle ligne + la ligne lue...
ObjectDest = ObjectDest + vbNewLine + LigneLue
'...sinon si notre object est vide alors...
Else
'...notre object est égal à la ligne lue...
ObjectDest = LigneLue
'...fin de cette condition...
End If
'...fin de cette condition...
End If
'... et on recommence.
Loop
'Fermeture du fichier ouvert
Close #1
'On réouvre ce fichier...
Open FichierPathOpen For Output As #1
'...pour y inscrir le contenu de notre object...
Print #1, ObjectDest
'...puis on le ferme
Close #1
'Et enfin on vide notre object
ObjectDest = ""
End Function
Conclusion :
Pour l'utiliser : il faut un TextBox appelé Text1 et un CommandButton appelé cmdSupprimer
Sub cmdSupprimer_Click
Call SupprimerDansIni ("Nom du Fichier",Text1,"Section1')
End Sub
24 août 2009 à 11:22
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
WritePrivateProfileString NomSection, vbNullString, vbNullString, CheminFichierINI
CoolWave :
Pour supprimer une variable :
WritePrivateProfileString NomSection, NomVariable, vbNullString, CheminFichierINI
Bonne prog ;)
21 déc. 2002 à 15:22
Sinon, est-il possible de supprimer une variable ?
[section]
variable=valeur
Merci ^^
31 juil. 2002 à 14:36
Des api existent.
Ce sont celles contenant ddans meur nom la chaine 'PrivateProfile'
@++
30 juil. 2002 à 13:16
A toi de voir l'utiliter de cette fonction.
Inc@nus.
Allez Bonne prog et continuer à critiquer mes prosg.
30 juil. 2002 à 10:20
qui gèrent tout (meme les erreurs), généralement il est inutile d'effacer une section d'un fichier INI il suffit simplement de l'initialiser avec un espace
une telle fonction rique de créer des problemes
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.