Lire/ecrire/supprimer dans un fichier ini grâce aux apis windows

Soyez le premier à donner votre avis sur cette source.

Vue 18 335 fois - Téléchargée 2 330 fois

Description

Comme son l'indique, ce code permet de lire, écrire et supprimer des valeurs dans un fichier INI, et ceci le plus simplement du monde grâce aux APIs Windows

Source / Exemple :


Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
    "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
    lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
    As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
    "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
    lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
    "WritePrivateProfileSectionA" ( _
     ByVal lpAppName As String, _
     ByVal lpString As Any, _
     ByVal lpFileName As String) As Long

'Fonction pour lire une valeur dans un fichier INI
Function INIRead(Entete As String, Variable As String, Optional Fichier As String) As String
    Fichier = IIf(Fichier = "", App.Path & "\" & App.EXEName & ".ini", Fichier)
    INIRead = String(255, Chr(0))
    INIRead = Left$(INIRead, GetPrivateProfileString(Entete, ByVal Variable, "", INIRead, Len(INIRead), Fichier))
End Function

'Fonction pour écrire une valeur dans un fichier INI
'La section spécifiée est créée automatiquement si elle n'existe pas déjà
Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String
    Fichier = IIf(Fichier = "", App.Path & "\" & App.EXEName & ".ini", Fichier)
    INIWrite = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function

'Fonction pour supprimer une valeur dans un fichier INI
Function INIDelete(Entete As String, Variable As String, Optional Fichier As String) As String
    Fichier = IIf(Fichier = "", App.Path & "\" & App.EXEName & ".ini", Fichier)
    INIDelete = WritePrivateProfileString(Entete, Variable, 0&, Fichier)
End Function

'Fonction pour supprimer une section dans un fichier INI
Function INIDeleteSection(Entete As String, Optional Fichier As String) As String
    Fichier = IIf(Fichier = "", App.Path & "\" & App.EXEName & ".ini", Fichier)
    INIDeleteSection = WritePrivateProfileSection(Entete, 0&, Fichier)
End Function

Conclusion :


J'ai mis cette source car j'ai remarqué qu'il y avait déjà des sources similaires mais plus complexes car n'utilisant pas les API...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
gmni Messages postés 91 Date d'inscription mercredi 6 novembre 2002 Statut Membre Dernière intervention 20 mars 2009
16 juin 2008 à 03:23
Merci!
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
30 avril 2008 à 18:14
Merci pour ce code Trés utile, simple efficace!

ciao
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
11 oct. 2006 à 11:23
Simple, Efficace, toujours util.

On ce rapelle pas toujours avec exactitude les paramètres d'une fonction dans une api.

La un petit module que l'on rajoute et on peu ajouter, modifier, supprimer, l'intérieur d'un fichier ini.

Sans vouloir être méchant certaine personne disans "y marche même pas chez moi, c'est de la gr..." ferais mieux d'apprendre a programmer avant de mettre ce genre de commentaire.

Cependant il est regretable que ces fonctions ne gère pas les erreurs correctement et que les types de données ne correspondent pas a ceux de l'api qu'il utlise.

Par exemple

# 'Fonction pour écrire une valeur dans un fichier INI
# 'La section spécifiée est créée automatiquement si elle n'existe pas déjà
# Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String
# Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
# INIWrite = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
# End Function


# Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
# "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
# lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long


Il est regrettable que le type de donnée renvoyé est une String au lieu d'un Long, et il aurais peut etre été plus judicieux de mettre un booleen.
cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007
2 mai 2006 à 23:38
salut skaleta !!!
je ovis que personne ne te reponds !

alors tu connais les fichiers ini, ils sont composés de section, de clés, et de valeurs.
exemple (le fichier s'appelle 'essai.ini' :

----------
[SECTION]
cle=valeur
----------

et bien avec ce prog, pour lire la valeur, faut faire :

-------------
Dim reponse as string
reponse = INIRead( "SECTION" , "cle" , "essai.ini" )
-------------

et reponse aura pour valeur "valeur".
t'as compris pour lire ?

pour ecrire c'est pareil :

rien = INIWrite( "SECTION, qui sera crée si existe pas", "clé", "valeur" , "essai.ini"

"rien" ne sert a rien, mais vu que c'est une fonction, ça renvoie une valeur, donc faut mettre qqch !

pour supprimer rien de plus simple :

1) supprimer une clé
rien = INIDelete( "SECTION" , "cle" , "essai.ini")

2) supprimer une section :
rien = INIDeleteSection( "SECTION" , "essai.ini")

voila voila !!

j'espere que t'a compris !!

en tout cas moi j'utilise cette source des que j'ai des fichiers ini, donc merci Chrystalyst !!


salut !

Gagou
zebecasse Messages postés 4 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 8 février 2006
2 mai 2006 à 11:28
Simplement, merçi :) 10/10
Cro fort !
Afficher les 27 commentaires

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.