Lecture d'un fichier .INI + Utilisation des valeurs

thenonos Messages postés 6 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 décembre 2005 - 13 déc. 2005 à 23:22
thenonos Messages postés 6 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 décembre 2005 - 15 déc. 2005 à 17:06
Bonsoir, j'ai déjà fait plusieurs recherche sur la lecture de fichier .INI sur le site. J'ai trouvé bcp de choses mais je ne comprend pas. Je sui ultra-débutant et je besoin de ceci mon programme à faire pour l'école.

Je dois lire un fichier ini dans lequel se trouveront trois valeurs (un chemin de destination (ex: c:\toto), un nom générique (ex : *.bmp), et un délai (ex : 30 jours)). je dois pouvoir par la suite récupérer ses valeurs pour les utiliser et les comparer pour la suite du programme.

Comment faut-il écrire les valeurs dans le fichiers INI?
Que veut dire ce code qui permet justement de lire les fichiers INI :

Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _

Optional ValeurParDefaut As String = "") As String


Dim strReturn As String

strReturn = String(255, 0)

GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier

LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)


End Function

Merci d'avance

5 réponses

cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 2
13 déc. 2005 à 23:32
Salut,



Un fichier INI se structure de cette façon



[Section]

Clé=Valeur



Pour le code :




Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _


Optional ValeurParDefaut As String = "") As String


Dim strReturn As String


strReturn = String(255, 0) 'Alloue le buuffer


GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier 'Recupere la valeur dans le buffer


LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1) 'Enleve les caracteres nuls



End Function






D@runia
0
Sniper_Vgaerr Messages postés 113 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 14 août 2006
14 déc. 2005 à 11:52
Salut,

Un fichier Ini se compose comme la dit darunia comme ceci (je l'ai modifié selon mes variables à moi) :

[Category]
SubCategory=Value

Pour lire et écrire dans un fichier Ini, j'utilise ca :
'Les API qui permettent de lire et d'écrire dans un fichier Ini
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 As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long


Public Function LireIni(Category As String, SubCategory As String) As String 'Fonction pour lire un fichier Ini
Dim lpReturnString$, Size%, Valid%, Path$ 'Déclaration des variables
lpReturnString$ = Space$(255) 'Alloue un espace dans le buffer de 255 espaces
Size% = Len(lpReturnString$) 'Stocke la taille du buffer

Valid% = GetPrivateProfileString(Category, SubCategory, "", lpReturnString$, Size%, App.Path & "\Config.ini") 'Récupère les valeurs du fichier Ini
Path$ = Left$(lpReturnString$, Valid%) 'Résultat de la recherche se trouve dans Path$
If Path$ = "" Then Exit Function 'Si la variable est vide on sort de la fonction
LireIni = Path$ 'Ensuite on stocke le resultat dans la variable de la fonction
End Function


Public Function EcrireIni(Category As String, SubCategory As String, Value As String) 'Fonction pour écrire un fichier Ini
lRetVal = WritePrivateProfileString(Category, SubCategory, Value, App.Path & "\Config.ini") 'Ecrit dans le fichier Ini
End Function

Ensuite on appelle la focntion comme cela :

ValeurIni = LireIni("Categorie","SousCategorie")
Call EcrireIni("Categorie","SousCategorie","Valeur")

Voila en esperant que ca soit clair.
Allé @+ et bonne prog
0
thenonos Messages postés 6 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 décembre 2005
15 déc. 2005 à 13:42
Ok, merci pour ces précisions. Mais si mon fichier ini comporte plusieurs Sections donc plusieurs clés et plusieurs valeurs, mais comment vais-je faire une fois que j'aurais lu mon fichier ini pour les garder, ce qui me permettra par la suite de les comparer à d'autres valeurs (affectectations à des variables ??????)

Merci d'avance.
0
Sniper_Vgaerr Messages postés 113 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 14 août 2006
15 déc. 2005 à 15:29
Salut,

Tu fais :

ValeurIni = LireIni("Categorie","SousCategorie")
ValeurIni1 = LireIni("Categorie1","SousCategorie1")
ValeurIni2 = LireIni("Categorie2","SousCategorie2")

If ValeurIni <> ValeurIni1 Then ...

Voila
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thenonos Messages postés 6 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 décembre 2005
15 déc. 2005 à 17:06
Ok j'ai compris enfin je pense j'essaye ça dès ce soir et je vous tiens au courant. Merci
0
Rejoignez-nous