Récupération de variables situées dans un fichier inf ou ini

Soyez le premier à donner votre avis sur cette source.

Vue 4 763 fois - Téléchargée 316 fois

Description

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)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

warreng69
Messages postés
12
Date d'inscription
jeudi 21 novembre 2002
Statut
Membre
Dernière intervention
13 avril 2004
-
Votre code est tres bien.
je voudrai juste demander si kelk un possederai une source avec une fonction de lecture d'un fichier ini avec seulement le nom du fichier en parametres.
merci
et je souhaiterai egalement savoir comment le fichier ini peut etre lu (chargé) par une application.
peponr
Messages postés
22
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
26 février 2003
-
Ouais ça serai cool que qqn me dise aussi comment chargé un fichier ini ??? svp

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.