J'ai mis un exemple dans le zip (attention à avoir les ComDlg!)
Le code est pas tellement compliqué et il gère bien des erreurs (de toute manière si la chaine renvoyée est nulle ben c'est qu'il y a une erreur dans les paramètres que vous avez passés)
Note: Pour passer les noms des clés ne mettez pas les crochets, la fonction s'en charge
Source / Exemple :
Option Compare Text
Public Function RetrieveKey(ByVal FileName As String, ByVal KeyName As String, ByVal VarName As String) As String
Dim sResult As String
Dim sCurrentLine As String
Dim KeyFound As Boolean
Dim EndOfKey As Boolean
Dim VarFound As Boolean
Dim i As Integer
KeyFound = False
' SI LE FICHIER N'EXISTE PAS ON QUITTE SANS RIEN RETOURNER
' ON EFFECTUE LA RECHERCHE PARMI TOUS LES FICHIERS
If Dir(FileName, 7) = "" Then
RetrieveKey = vbNullString
Exit Function
End If
Open FileName For Input As #1
' *******************
' RECHERCHE DE LA CLE
Do While (Not EOF(1)) And KeyFound = False
Line Input #1, sCurrentLine
If sCurrentLine = "[" & KeyName & "]" Then
KeyFound = True
End If
Loop
' SI PAS DE CLE TROUVEE ALORS ON QUITTE ET ON NE RENVOIE RIEN
If Not KeyFound Then
RetrieveKey = vbNullString
Close #1
Exit Function
End If
' ************************
' RECHERCHE DE LA VARIABLE
EndOfKey = False
VarFound = False
Do While (Not EndOfKey) And (Not VarFound)
Line Input #1, sCurrentLine
' CONDITIONS D'ARRET
If EOF(1) Then EndOfKey = True 'SI FIN DE FICHIER
If Mid(sCurrentLine, 1, 1) = "[" Then EndOfKey = True 'SI NOUVELLE CLE
' RECHERCHE DES BORNES DE LA VARIABLE
i = 1
Do While Mid(sCurrentLine, i, 1) <> "="
i = i + 1
Loop
If Mid(sCurrentLine, 1, i - 1) = VarName Then
VarFound = True
End If
Loop
' SI FIN DE CLE ET TOUJOURS PAS DE VARIABLE TROUVEE
If EndOfKey And (Not VarFound) Then
RetrieveKey = vbNullString
Close #1
Exit Function
End If
sResult = Mid(sCurrentLine, i + 1, (Len(sCurrentLine) - i))
Close #1
RetrieveKey = sResult
End Function
Conclusion :
Y a aussi un ptit exemple que j'ai mis pour montrer comment il marche (c'est là ke vous avez besion des comdlg)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.