Salut,

j'ai récupérer un code pour lire dans un fichier (.ini) qui nécessite de faire un left avec comme longueur, un long... => exception puisque left ne permet qu'une longueur integer...

Voici le code du module:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Short, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
 
Function LireINI(ByVal pEntete As String, ByVal pVariable As String, ByVal pFic As String) As String
 
   Dim l_szRetour As String
   Dim l_lRetour As Long
   If Dir(pFic) = "" Then
       MsgBox("Fichier introuvable")
       LireINI = "0"
   Else
       l_szRetour = Space$(255)
       l_lRetour = GetPrivateProfileString(pEntete, pVariable, "Error", l_szRetour, 255, pFic)
       LireINI = Strings.Left$(l_szRetour, l_lRetour)   ' l'erreur ici
   End If
 
End Function
j'ai essayé de remplacer Strings.Left$ par left$ et left, mais le problème est le même...
je ne vois pas comment contourner le problème, alors si vous avez de la lumière... même si vous avez une autre façon de le faire, je prends...
Merci d'avance.