Récup String d'un .ini Visual Basic 2008
soyanlo
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
soyanlo Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
soyanlo Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je bloque depuis des heures sur la façon de récupérer une chaine de caractère enregistrer dans un fichier .INI qui serait des string,
En effet j'arrive parfaitement a traiter des entiers (les récupérer ou les enregistrer) mais pour les chaines de caractère je n'y arrive pas.
J'utilise ceci pour récupérer les données :
textbox.text = Val(INI_GetCle(Application.StartupPath & "\Declaration.ini", "cellule", "txtville1"))
Et voici la fonction :
'Retourne la valeur de la clé "Cle" de la section "Section" du fichier "File"
Public Function INI_GetCle(ByVal File As String, ByVal Section As String, ByVal Cle As String) As String
Dim PtrCh As IntPtr
Dim Lng As Integer
Dim Chaine As String
PtrCh = StringToHGlobalAnsi(New String(vbNullChar, 1024))
Lng = GetPrivateProfileString(Section, Cle, "", PtrCh, 255, File)
Chaine = PtrToStringAnsi(PtrCh, Lng)
FreeHGlobal(PtrCh)
INI_GetCle = Chaine
End Function
Et donc à la place d'une chaine je me retrouve toujours avec 0.
J'ai tester avec des valeurs différente dans le .ini par exemple : "test" ou test mais ça ne change rien.
Je commence à désespérer, j'ai beaucoup cherché sur le net mais ça a juste réussit à me déprimer xD
Merci de votre aide.
Je bloque depuis des heures sur la façon de récupérer une chaine de caractère enregistrer dans un fichier .INI qui serait des string,
En effet j'arrive parfaitement a traiter des entiers (les récupérer ou les enregistrer) mais pour les chaines de caractère je n'y arrive pas.
J'utilise ceci pour récupérer les données :
textbox.text = Val(INI_GetCle(Application.StartupPath & "\Declaration.ini", "cellule", "txtville1"))
Et voici la fonction :
'Retourne la valeur de la clé "Cle" de la section "Section" du fichier "File"
Public Function INI_GetCle(ByVal File As String, ByVal Section As String, ByVal Cle As String) As String
Dim PtrCh As IntPtr
Dim Lng As Integer
Dim Chaine As String
PtrCh = StringToHGlobalAnsi(New String(vbNullChar, 1024))
Lng = GetPrivateProfileString(Section, Cle, "", PtrCh, 255, File)
Chaine = PtrToStringAnsi(PtrCh, Lng)
FreeHGlobal(PtrCh)
INI_GetCle = Chaine
End Function
Et donc à la place d'une chaine je me retrouve toujours avec 0.
J'ai tester avec des valeurs différente dans le .ini par exemple : "test" ou test mais ça ne change rien.
Je commence à désespérer, j'ai beaucoup cherché sur le net mais ça a juste réussit à me déprimer xD
Merci de votre aide.
A voir également:
- Récup String d'un .ini Visual Basic 2008
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
2 réponses
Bonjour,
La fonction Val() donne la valeur numérique d'une chaine de caractères (String)
exemple Val("123") donne 123 mais Val("toto") donne 0
Si tu veux récupérer une chaine de caractères, n'utilises pas Val()
Essaie avec:
textbox.text = INI_GetCle(Application.StartupPath & "\Declaration.ini", "cellule", "txtville1")
;o)
La fonction Val() donne la valeur numérique d'une chaine de caractères (String)
exemple Val("123") donne 123 mais Val("toto") donne 0
Si tu veux récupérer une chaine de caractères, n'utilises pas Val()
Essaie avec:
textbox.text = INI_GetCle(Application.StartupPath & "\Declaration.ini", "cellule", "txtville1")
;o)