VBA et les fichiers .ini

Comment lire (ou écrire) simplement un fichier .ini en VBA ?
Testé sous Access 2003

Dans Access 2003 :

Ajouter un module (qu'on va appeller ici "ini").

Coller le code ci-dessous :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal
nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function GetPrivateProfileInt Lib "kernel32" _
Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, _
ByVal
lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long

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 Long
  Public CONFIG_FILE As String   Public Function GetINIString(ByVal sApp As String, ByVal sKey As String) As String   Dim sBuf As String * 256 Dim lBuf As Long   lBuf = GetPrivateProfileString(sApp, sKey, "", sBuf, Len(sBuf), CONFIG_FILE) GetINIString = Left$(sBuf, lBuf) End Function     Public Function WriteINIString(ByVal sApp As String, ByVal sKey As String, ByVal sValue As String) As String WritePrivateProfileString sApp, sKey, sValue, CONFIG_FILE End Function  

 

Dans le module qui est exécuté, ajouter la ligne :

1
CONFIG_FILE = Application.CurrentProject.Path & "\config.ini"

Access 2003 va chercher le fichier config.ini dans le répertoire du fichier mdb exécuté.

Le fichier config.ini doit avoir la structure suivante :

1
2
3
4
5
6
[clé]
variable=valeur
 
[clé2]
; Commentaire
variable2=valeur

Exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[general]
GEN_dir_log=log
GEN_dir_export=export
GEN_dir_lib=lib
 
 
[ftp]
; Paramètres de connexion au serveur FTP
FTP_User=jbnet
FTP_Pass=test1234
FTP_Server=jbnet.fr
 
; Répertoire de destination du fichier
; FTP_remote_dir=/test/temp
FTP_remote_dir=/test/import
 
 
[email]
; e-mail de destination de la log
; Séparés par une virgule sans espace pour plusieurs e-mail
EMAIL_To=webmaster[ at ]jbnet [ dot ] fr

 

Lecture d'une variable :

1
strFTP_User = GetINIString("ftp", "FTP_User")

La variable strFTP_User reçoit la valeur de FTP_User de la section "ftp".

Ecriture d'une variable :

1
strFTP_User = WriteINIString("ftp", "FTP_User", "autre_ftp_user")

La valeur de FTP_User de lasection "ftp" prend la valeur "autre_ftp_user"

 

 

 

 

Joomla templates by a4joomla