cs_magicgus
Messages postés206Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention14 septembre 2011
-
22 sept. 2009 à 23:14
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
23 sept. 2009 à 01:08
Bonjour,
J'ai un petit problème avec un code de lecture ini, il me coupe des chaine de caractère sans comprendre pourquoi...
Mon code contenu dans un module :
'Les déclarations
Public 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
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName$, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName$) As Long
'La fonction de lecture
Public Function IniLire(Section As String, Variable As String, Fichier As String, Optional Default As String) As String
Dim strRetour As String
strRetour = String(255, Chr(0))
Dim Longueur As Integer
Longueur = GetPrivateProfileString(Section, Variable, "", strRetour, Len(strRetour), Fichier)
MsgBox strRetour '<- Ici c'est le drame !
IniLire = Left$(strRetour, Longueur)
If IniLire vbNullString Then IniLire Default
End Function
Je vous passe les détails sur l'appel, ce n'est pas l'important...
Voyer plutôt ou j'ai placé le msgbox dans la fonction IniLire, ce msgbox me permet de voir l'erreur sans comprendre pourquoi elle est là.
Un des fichier dans lequel la fonction cherche ses info :
[rgcfile]
Type=initable
About=Fichier client
[parameters_MSFlexGrid]
ColsNames=Code ressource;Identité;Corps de metiers;Adresse;Code postal;Ville;Pays;Téléphone;Mobile;Email;Situation familiale;Permis;Véhicule;Date de naissance;Lieu de naissance;Dept. de naissance;Nationalité;Lanques pratiqués;N° Sécu.;Type de contrat;Chaine de coût
ColsSizes=1605;2505;3345;3000;1500;1500;1500;2505;2505;3210;1500;1230;2505;2220;2400;1890;1410;3330;3075;3045;1710
ColsAlign=1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1
FixedCols=0
FixedRows=1
Voyer par exemple à la ligne ColsNames, il m'enleve la dernière lettre et si (exemple) je met "securité sociale" à la place de (sécu) c'est le bordel integrale, en gros selon ce que j'écris ça marche bien ou non, j'ai trois fichier de ce type et pour le moment c'est le seul qui est mal lu. Peut être que l'api ne pige pas un truc, mais bon, l'api, c'est pas de l'open source alors pour vérifié...
PS je suis peut être à coté de la masse mais c'est pas grave je sèche quand mêle là, si besoin est je peut fournir plus d'info.
cs_magicgus
Messages postés206Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention14 septembre 2011 22 sept. 2009 à 23:15
Désolé pour le copier coller inefficace, je pense que le problème reste compréhensible, après lecture ini il manque des bout selon ce que le contenu de la chaine qu'il lit.