Lecture dans .INI impossible de recuperer correctement la chaine de caractere
Bonjour, voilà mon souci !!
J'ai un fichier INI contenant plusieurs parametre que je recupere grace à Getprivate profilestring, j'ai donc une boucle qui me permet de recuperer les parametre les uns apres les autres.
Mon probleme est que lorsque je recupere un parametre il me met des espaces derriere (Je precise que Trim(variable) ne fonctionne pas dans ce cas, je ne sais pas pourquoi ).
Je recupere donc le nb de caractere dans une variable, puis je tronque ma varaiable.
Mon pb est que le 1er coup ca marche mais au coup suivant ma varaiable nb de caractere prend une valeur completement absurde, voici mon code:
Code:
1 2 3 4
| 'DECLARATION
'Fonction lisant une string
'------------------------------
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 Integer, ByVal lpFileName As String) As Long |
MA FONCTION QUI VA LIRE MA CHAINE DANS LE INI
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Function LIRE(ByVal cAppName As String, ByVal cKeyName As String, ByVal cKeyDefault As String, ByRef cKeyValue As String, ByVal cProfName As String) As String
Const sLongueur As Short = 255
Dim NB_CHAR As String
LIRE = GetPrivateProfileString(cAppName, cKeyName, cKeyDefault, cKeyValue, sLongueur, cProfName)
NB_CHAR = LIRE 'me donne le nb de caractere visible de ma chaine
'test si la chaine n'est pas vide ou inexistante
If LIRE = 0 Then
MsgBox("Le fichier INI est manquant ou incomplet ( " + GetCurrentDirectory() + cIniFile + " )", 16, "Lien BDD")
End
End If
'retourne la valeur de ma chaine
LIRE = cKeyValue 'ma chaine sur 255 caractere
LIRE = LSet(LIRE, NB_CHAR) ma chaine avec le vrai nb de caractere
End function |
MA FONCTION QUI RECUPERE LES VALEURS
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Private Sub connexion_SQL_param()
Dim CurrentDirectory As String
CurrentDirectory = GetCurrentDirectory()
cKey = "serveur"
reponse = LIRE(cRubrique, cKey, "", cRepertoire, CurrentDirectory & cIniFile)
serveur_SQL = reponse
cKey = "database"
reponse = LIRE(cRubrique, cKey, "", cRepertoire, CurrentDirectory & cIniFile)
database_SQL = reponse
cKey = "user"
......
End sub |
Merci pour votre aide :)