leonrv
Messages postés6Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention28 octobre 2009
-
31 janv. 2008 à 17:32
leonrv
Messages postés6Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention28 octobre 2009
-
31 janv. 2008 à 23:42
Bonjour,
Je suis sur VB6 sous Vista.
J'utilise GetPrivateProfileString pour lire le contenu d'un .INI que j'ai écrit avec WritePrivateProfileString.
Avec ce code :
GetPrivateProfileString(Entete, Variable, "", Retour, Len(Retour), Fichier)
mais le contenu de ma chaîne Retour ne change pas, il reste tel que je le formate précédemment, alors que ma clé existe bien, le chemin de mon fichier est bon, etc...
Par contre, GetPrivateProfileString me retourne le bon nombre de caractère que contient cette clé (ici 7).
Je ne comprends pas d'où le problème peut venir.
Une incompatibilité avec Vista ?...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 janv. 2008 à 20:37
"As Any" est source d'erreurs, éviter.
lpDefault inutilisé, on mettre As Long pour passer 0.
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As Long, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Integer
Function LireINI(Entete As String, Variable As String) As String
Dim Retour As String, Fichier As String, n As Long
Fichier = App.Path & "" & "Test.ini"
Retour = String(255, "A")
n = GetPrivateProfileString(Entete, Variable, 0, Retour, 255, Fichier)
LireINI = Left$(Retour, n)
End Function
leonrv
Messages postés6Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention28 octobre 2009 31 janv. 2008 à 18:15
Oui, il fait bien 255 caractères comme je l'ai dimensionné avant.
J'ai testé l'EXE sous XP pour voir, et ça ne change rien au problème : le contenu de Retour n'est pas modifié...
leonrv
Messages postés6Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention28 octobre 2009 31 janv. 2008 à 19:16
Mon code :
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Integer
Function LireINI(Entete As String, Variable As String) As String
leonrv
Messages postés6Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention28 octobre 2009 31 janv. 2008 à 23:42
Grand Merci à vous !
A partir de ton code BruNews j'ai trouvé mon erreur.
Elle est juste à cette ligne :
Dim Retour, Fichier As String => Dim Retour As String, Fichier As String
Je n'ai pas pensé à séparer les 2 variables... petites subtilités de VB qui m'échappe, mais bon.