Présentation et utilisation des fichiers ini

Présentation et utilisation des fichiers ini

Description

Ce tutorial présente :
- les API windows utilisées pour lire et écrire dans des fichiers INI
- La structure des fichiers INI
- L'utilisation dans le code de la lecture et l'écriture dans ces fichiers.

Je me suis inspiré des codes sources présents sur le site.
N'hésitez pas à laisser vos remarques.
Merci

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'exploitation Windows. Par convention les noms de ces fichiers portent l'extension «.ini».

Les fonctions API

Les deux fonctions que nous allons utiliser sont GetPrivateProfileString et WritePrivateProfilString.

Dans un module vb6, on va placer ce code :

'
'-- 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.

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

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

A voir également
Ce document intitulé « Présentation et utilisation des fichiers ini » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous