OVH Cloud OVH Cloud

Pourquoi cela me retourne une chaîne vide ?

3 réponses
Avatar
TEV
Bonjour,

Je cherche à récupérer une valeur se trouvant dans un fichier ini. Pour
cela j'utilise l'api GetPrivateProfileString. Un peu hésitant sur la façon
de procéder, je vais sur la faq qui lui est consacré. Il me semble avoir
fait comme il faut et pourtant, la seule chose que me retourne l'api est le
bon nombre de caractères, par contre ma variable me retourne vide. Voici le
code, où est l'erreur ? Dans le fichier ini j'ai [Date] et
DatMajBD=dd/mm/aaaa. Sachant que j'ai essayé avec d'autres clés et la
réponse fut la même.

Dim DtIni, FileIni As String
Dim LireIni, totalJour As Long
'On Error GoTo err_MajBD
' Indique l'adresse du fichier INI
FileIni = App.Path & "\bin\logse.ini"
' Mise en place du buffer de lecture
DtIni = String(255, 0)
LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255,
FileIni)
DtIni = Left$(DtIni, lgRep)
Debug.Print DtIni

Christian.

3 réponses

Avatar
Bismark Prods
je ne sais pas ou tu as trouvé les spécifications de cette API, pour ma part
j'ai ça :
Declare Function GetPrivateProfileSection Lib "kernel32" Alias
"GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal
lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String)
As Long

donc ca donnerais :
LireIni = GetPrivateProfileString("date", DtIni, 255, FileIni)



"TEV" a écrit dans le message de
news:3f6e054c$0$21983$
Bonjour,

Je cherche à récupérer une valeur se trouvant dans un fichier ini. Pour
cela j'utilise l'api GetPrivateProfileString. Un peu hésitant sur la


façon
de procéder, je vais sur la faq qui lui est consacré. Il me semble avoir
fait comme il faut et pourtant, la seule chose que me retourne l'api est


le
bon nombre de caractères, par contre ma variable me retourne vide. Voici


le
code, où est l'erreur ? Dans le fichier ini j'ai [Date] et
DatMajBDÝ/mm/aaaa. Sachant que j'ai essayé avec d'autres clés et la
réponse fut la même.

Dim DtIni, FileIni As String
Dim LireIni, totalJour As Long
'On Error GoTo err_MajBD
' Indique l'adresse du fichier INI
FileIni = App.Path & "binlogse.ini"
' Mise en place du buffer de lecture
DtIni = String(255, 0)
LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255,
FileIni)
DtIni = Left$(DtIni, lgRep)
Debug.Print DtIni

Christian.




Avatar
Stéphane Maillard
Bonjour,

Il y'à une erreur :
LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255, FileIni)


Essayez avec ceci :
GetPrivateProfileString("C:NomDuFichier.ini", "date", "DatMajBD", "", DtIni, 255, FileIni)

Dans votre ligne vous ne dites pas ou se trouve le fichier INI.
Si il est dans le répertoire de votre application, vous pouvez faire :
NomDuFichierINI = App.Path & "" & "MonFichier.ini"

--

Cordialement

Stéphane Maillard
Rixy Software

"TEV" a écrit dans le message de news: 3f6e054c$0$21983$
Bonjour,

Je cherche à récupérer une valeur se trouvant dans un fichier ini. Pour
cela j'utilise l'api GetPrivateProfileString. Un peu hésitant sur la façon
de procéder, je vais sur la faq qui lui est consacré. Il me semble avoir
fait comme il faut et pourtant, la seule chose que me retourne l'api est le
bon nombre de caractères, par contre ma variable me retourne vide. Voici le
code, où est l'erreur ? Dans le fichier ini j'ai [Date] et
DatMajBDÝ/mm/aaaa. Sachant que j'ai essayé avec d'autres clés et la
réponse fut la même.

Dim DtIni, FileIni As String
Dim LireIni, totalJour As Long
'On Error GoTo err_MajBD
' Indique l'adresse du fichier INI
FileIni = App.Path & "binlogse.ini"
' Mise en place du buffer de lecture
DtIni = String(255, 0)
LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255,
FileIni)
DtIni = Left$(DtIni, lgRep)
Debug.Print DtIni

Christian.




Avatar
TEV
Ben j'ai trouvé cette façon de faire sur la FAQ VB. J'ai essayé avec ton API
GetPrivateProfileSection et cela donne toujours la même chose du vide.

En réponse à Stéphane : la variable FileIni contient le chemin et le nom de
mon fichier ini, et comme le spécifie l'API je l'ai mise en fin. J'ai tout
de même essayé ta version et cela ne marche pas.

Serait-ce mon fihcier ini qui aurait un problème ? Je l'ai avec le notepad
et rebaptisé .ini.

Christian.

"Stéphane Maillard" a écrit dans le
message de news:
Bonjour,

Il y'à une erreur :
> LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255,


FileIni)
Essayez avec ceci :
GetPrivateProfileString("C:NomDuFichier.ini", "date", "DatMajBD", "",


DtIni, 255, FileIni)

Dans votre ligne vous ne dites pas ou se trouve le fichier INI.
Si il est dans le répertoire de votre application, vous pouvez faire :
NomDuFichierINI = App.Path & "" & "MonFichier.ini"

--

Cordialement

Stéphane Maillard
Rixy Software

"TEV" a écrit dans le message de news:


3f6e054c$0$21983$
> Bonjour,
>
> Je cherche à récupérer une valeur se trouvant dans un fichier ini. Pour
> cela j'utilise l'api GetPrivateProfileString. Un peu hésitant sur la


façon
> de procéder, je vais sur la faq qui lui est consacré. Il me semble avoir
> fait comme il faut et pourtant, la seule chose que me retourne l'api est


le
> bon nombre de caractères, par contre ma variable me retourne vide. Voici


le
> code, où est l'erreur ? Dans le fichier ini j'ai [Date] et
> DatMajBDÝ/mm/aaaa. Sachant que j'ai essayé avec d'autres clés et la
> réponse fut la même.
>
> Dim DtIni, FileIni As String
> Dim LireIni, totalJour As Long
> 'On Error GoTo err_MajBD
> ' Indique l'adresse du fichier INI
> FileIni = App.Path & "binlogse.ini"
> ' Mise en place du buffer de lecture
> DtIni = String(255, 0)
> LireIni = GetPrivateProfileString("date", "DatMajBD", "", DtIni, 255,
> FileIni)
> DtIni = Left$(DtIni, lgRep)
> Debug.Print DtIni
>
> Christian.
>
>