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 21 22 23 |
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 |
[clé] variable=valeur [clé2] ; Commentaire variable2=valeur |
Exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[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 la section « ftp » prend la valeur « autre_ftp_user »