Supprimer section dans ini

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 619 fois - Téléchargée 40 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

J'ai trouvé BEAUCOUP plus simple :

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 ;)
Messages postés
48
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
30 septembre 2009

Merci Inc@nus, ton code m'a bien servi...depuis le temps que je le cherchais :/

Sinon, est-il possible de supprimer une variable ?
[section]
variable=valeur

Merci ^^
Messages postés
39
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
5 juin 2006

Salut

Des api existent.
Ce sont celles contenant ddans meur nom la chaine 'PrivateProfile'

@++
Messages postés
11
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
29 juin 2003

A FredJust : Peut-être mais dans mes projets, j'ajoute à une liste view ce qu'il y a entre [. Ainsi en fonction que je clique sur une rubrique, je charge ce qu'il y a dans les sections. Donc si on veut enlevé les section pour ne pas qu'elle soit dans la listview on utilise cette fonction.
A toi de voir l'utiliter de cette fonction.
Inc@nus.
Allez Bonne prog et continuer à critiquer mes prosg.
Messages postés
25
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
23 avril 2015

l'avantage des fchiers INI est qu'ils sont tres facilement accessible via deux API
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.