1. Définition (Wikipédia)
En jargon informatique, un fichier INI désigne un fichier de configuration dans un format introduit par les systèmes d'exploitationWindows. Par convention les noms de ces fichiers portent l'extension «.ini».
2. Les fonctions API
Les deux fonctions que nous allons utiliser sont GetPrivateProfileString et WritePrivateProfilString.
Dans un module vb6, on va placer ce code :
Option Explicit
'-- Déclaration des fonctions API
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName AsAny, _
ByVal lpDefault AsString, _
ByVal lpReturnedString AsString, _
ByVal nSize AsLong, _
ByVal lpFileName AsString) AsLong
Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName AsString, _
ByVal lpKeyName AsAny, _
ByVal lpString AsAny, _
ByVal lpFileName As String) AsLong
'***************************************************************************
'* Fonction permettant l'écriture dans un fichier INI
'***************************************************************************
Public Function EcritDansFichierIni(section As String, _
Cle As String, _
Valeur As String, _
Fichier As String) As Long
EcritDansFichierIni = WritePrivateProfileString(section, Cle, Valeur, Fichier)
End Function
'***************************************************************************
'* Fonction permettant la lecture dans un fichier INI
'***************************************************************************
Public Function LitDansFichierIni(section As String, _
Cle As String, _
Fichier As String, _
Optional ValeurParDefaut As String = "") As String
Dim strReturn As String
strReturn = String(255, 0)
GetPrivateProfileString section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)
End Function
Remarque : Dans la fonction de lecture on ajoute en option une valeur par défaut égale à 0. Cela permet d'avoir quand même une valeur même si le programme n'a pas su lire le fichier ini.
3. Le fichier ini
Il suffit de prendre un éditeur de texte quelconque, notepad par exemple.
Vous devez organiser votre fichier de cette manière :
[Section]
cle=valeur
Ici par exemple je vais créer 3 sections contenant chacune 2-3-7 clé ayant des valeurs différentes :
[MESSAGES]
MessageInfo = Super j'ai su lire mon fichier ini
Titre = Lecture / Ecriture fichier ini
[ANGLAIS]
mnu_Fichier = &File
mnu_Enrg = &Save
mnu_Imprim = &Print
[SOMMES]
Depense = 1000
Entree = 50
Sortie = 87
StockLimiteBas = 5
StockLimiteHaut = 12
Alerte = Attention la limite haute est atteinte
SoldeInitial = 7844630 €
Ce fichier il faut l'enregistrer en modifiant l'extension par .ini
4. Utilisation du fichier ini et des fonctions api
Ici pour notre exemple on va supposer que notre fichier ini a été enregistré dans le répertoire de l'application et que nous l'avons nommé « iniSetup ». Si vous enregistrer votre fichier ailleurs vous devez soit faire la recherche de ce fichier sur votre disque, soit le saisir en dur dans votre code. La deuxième option étant moins propre.
Pour utiliser le code placé dans le module vous devez utiliser les lignes suivantes :
- Lecture
'-- Déclaration de variables
Dim chemin as string
Dim messageMsgBox as string
Dim titreMsgBox as string
'-- Initialisation des variables et appel des fonctions API
chemin = App.Path & "\inisetup.ini"
messageMsgBox = LitDansFichierIni("MESSAGES", "MessageInfo", Chemin, "Erreur")
titreMsgBox = LitDansFichierIni("MESSAGES", "Titre", Chemin, "Erreur")
msgbox messageMsgBox,vbInformation,titreMsgBox
- Ecriture
'-- Déclaration de variables
Dim chemin as string
'-- Mise à jour du fichier ini
EcritDansFichierIni "SOMMES", "Sortie", 74, chemin
Vous pouvez vérifier en ouvrant votre fichier ini que la valeur de Sortie à bien été modifiée