Fichier Ini probleme

cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 13 oct. 2004 à 11:21
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 13 oct. 2004 à 15:10
Bonjour,
je cherche a stocker dasn un fichier ini grace a l'api writeprivteprofilsting et a recuperer grace a get....

Mon probleme ce situ au niveau de la recuperation en effet je stock des string contenant des caractere ascii de 0 à 255 et apparemment avec get je ne recupere pas tous les caracteres...
Ce probleme est il connnu ?? y a t'il une solution??

Merci
Olivier

4 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
13 oct. 2004 à 11:42
Le caractère de code ascii égal à zéro doit effectivement poser un PB ! Sinon, le reste devrait passer !!

Christophe R.
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
13 oct. 2004 à 11:53
Si tu ne t'en sors pas, colle ceci dans un module nommé fichierINI :

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 Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
    "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
    lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
    "WritePrivateProfileSectionA" ( _
     ByVal lpAppName As String, _
     ByVal lpString As Any, _
     ByVal lpFileName As String) As Long

'Fonction pour lire une valeur dans un fichier INI
Function INIRead(Entete As String, Variable As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.PATH & "" & App.EXEName & ".ini", Fichier)
    INIRead = String(255, Chr(0))
    INIRead = Left$(INIRead, GetPrivateProfileString(Entete, ByVal Variable, "", INIRead, Len(INIRead), Fichier))
End Function

'Fonction pour écrire une valeur dans un fichier INI
'La section spécifiée est créée automatiquement si elle n'existe pas déjà
Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.PATH & "" & App.EXEName & ".ini", Fichier)
    EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function

'Fonction pour supprimer une valeur dans un fichier INI
Function INIDelete(Entete As String, Variable As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.PATH & "" & App.EXEName & ".ini", Fichier)
    SupprINI = WritePrivateProfileString(Entete, Variable, 0&, Fichier)
End Function

'Fonction pour supprimer une section dans un fichier INI
Function INIDeleteSection(Entete As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.PATH & "" & App.EXEName & ".ini", Fichier)
    SupprSectionINI = WritePrivateProfileSection(Entete, 0&, Fichier)
End Function



et tu t'en sers comme ceci :

Dim retour as String
fichierINI.INIWrite "Entete","Valeur","ma_valeur","C:\toto.ini"
retour = fichierINI.INIRead "Entete","Valeur","C:\toto.ini"

retour vaut alors "ma_valeur"
...

Manu
0
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
13 oct. 2004 à 12:01
ça ne reoudra pas le pb car ça utilise toujour "GetPrivateProfileString " j'ai deja un module qui lit les fichier ini un pe comme celui là mais c bien la fonction GetPrivateProfileString qui ne me retourne aps la chaine entiere...
mais je suis en train de tester savoir si c des qu'il y a un chr(0) que ça merdouille...
0
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
13 oct. 2004 à 15:10
bon finallement je converti les caracteres ascii en leur equivalent numerique avant stockage comme ça pas de souci un pe plus long mais bon aps toruvé d'autre solutions! :\

merci à tous
0
Rejoignez-nous