Accueil > > > MANIPULEZ LES FICHIERS INI AVEC UN MODULE DE CLASS
MANIPULEZ LES FICHIERS INI AVEC UN MODULE DE CLASS
Information sur la source
Description
Après m'être inspiré de beaucoup de sources ici même pour lire,ecrire et supprimer dans les fichiers ini, j'ai fini par faire un module de class permettant une bonne souplesse pour l'utilisation des fichiers ini. Il comprend les principales fonctions: lire - ecrire - supprimer des valeurs ou des sections. Pré-requis: ajouter à votre projet le module de class DLLfichierini.cls, son utilisation est simple dans un sub ou une fonction: 'declarer la variable qui fera appel au module de class, c est obligatoire, vous pouvez en appelez autant que vous le desirez avec des noms différents dim nom_de_votre_variable as new DLLfichierini 'il faut maintenant lui designer le fichier ini nom_de_votre_variable.Set_fichier c:/chemin_de_votre_fichier 'vous pouvez recupérer dans une variable le nom du fichier ini variable_bis= nom_de_votre_variable.Get_fichier 'pour enregistrer une donnée beta dans une section alpha de valeur x on aura nom_de_votre_variable.WriteIni "alpha", "beta", "x" 'pour lire cette donnée dans une variable bis, la variable recupérée est formatée en string ne l'oublié pas, des changements seront à effectuer selon vos besoins(CINT, CBOOL,etc......) variable_bis= nom_de_votre_variable.GetIni("alpha", "beta") 'pour supprimer cette valeur nom_de_votre_variable.SupIni "alpha", "beta" 'pour supprimer la section nom_de_votre_variable.SupsectionIni "alpha"
Source
- Option Explicit
- 'declaration du fichier string
- Private fichier_ini As String
-
- 'ici les fonctions appi utilisée
- Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
- Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
- Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
-
- 'fonction appi pour lire et ecrire un fichier ini
- 'api recupere une valeur
- Private 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
- 'api ecrit une valeur
- Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
- "WritePrivateProfileStringA" (ByVal lpApplicationName$, _
- ByVal lpKeyName As Any, _
- ByVal lpString As Any, _
- ByVal lpFileName$) As Long
- 'api ecrit une section
- Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
- "WritePrivateProfileSectionA" ( _
- ByVal lpAppName As String, _
- ByVal lpString As Any, _
- ByVal lpFileName As String) As Long
- 'fonction pour initialiser le fichier
- '
- Public Function Set_fichier(ByVal nom_fichier As String)
- If nom_fichier <> "" Then
- fichier_ini = nom_fichier
- Else
- MsgBox "Problème sur le nom de fichier ini", vbCritical + vbOKOnly, "Erreur"
- End If
- End Function
- 'fonction pour retourner le nom de fichier
- '
- Public Function Get_fichier() As String
- If fichier_ini <> "" Then
- Get_fichier = fichier_ini
- End If
- End Function
-
- 'fonction de lecture dans les fichiers init
- '
- Public Function GetIni(ByVal section As String, ByVal Variable As String) As Variant
- Dim strRetour As String
- Dim SectionArr() As String, m As Integer
- Dim longueur As Integer
- If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
- strRetour = String(65000, Chr(0))
- longueur = GetPrivateProfileString(section, Variable, "", strRetour, Len(strRetour), fichier_ini)
- GetIni = Left$(strRetour, longueur)
- SectionArr = Split(GetIni, vbNullChar)
- For m = 0 To UBound(SectionArr)
- GetIni = SectionArr(m)
- Next m
- End If
- End Function
-
-
- 'fonction d ecriture dans les fichiers init
- '
- Public Function WriteIni(ByVal section As String, ByVal Variable As String, ByVal valeur As String) As Integer
- If fichier_ini <> "" Then
- WriteIni = WritePrivateProfileString(section, Variable, valeur, fichier_ini)
- End If
- End Function
-
- 'fonction de suppression une valeur dans les fichiers init
- '
- Function SupIni(ByVal section As String, ByVal Variable As String) As String
- If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
- SupIni = WritePrivateProfileString(section, Variable, 0&, fichier_ini)
- End If
- End Function
-
- 'fonction de suppression une section dans les fichiers init
- '
- Function SupsectionIni(ByVal section As String) As String
- If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
- SupsectionIni = WritePrivateProfileSection(section, 0&, fichier_ini)
- End If
- End Function
-
Option Explicit
'declaration du fichier string
Private fichier_ini As String
'ici les fonctions appi utilisée
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'fonction appi pour lire et ecrire un fichier ini
'api recupere une valeur
Private 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
'api ecrit une valeur
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
"WritePrivateProfileStringA" (ByVal lpApplicationName$, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName$) As Long
'api ecrit une section
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
"WritePrivateProfileSectionA" ( _
ByVal lpAppName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
'fonction pour initialiser le fichier
'
Public Function Set_fichier(ByVal nom_fichier As String)
If nom_fichier <> "" Then
fichier_ini = nom_fichier
Else
MsgBox "Problème sur le nom de fichier ini", vbCritical + vbOKOnly, "Erreur"
End If
End Function
'fonction pour retourner le nom de fichier
'
Public Function Get_fichier() As String
If fichier_ini <> "" Then
Get_fichier = fichier_ini
End If
End Function
'fonction de lecture dans les fichiers init
'
Public Function GetIni(ByVal section As String, ByVal Variable As String) As Variant
Dim strRetour As String
Dim SectionArr() As String, m As Integer
Dim longueur As Integer
If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
strRetour = String(65000, Chr(0))
longueur = GetPrivateProfileString(section, Variable, "", strRetour, Len(strRetour), fichier_ini)
GetIni = Left$(strRetour, longueur)
SectionArr = Split(GetIni, vbNullChar)
For m = 0 To UBound(SectionArr)
GetIni = SectionArr(m)
Next m
End If
End Function
'fonction d ecriture dans les fichiers init
'
Public Function WriteIni(ByVal section As String, ByVal Variable As String, ByVal valeur As String) As Integer
If fichier_ini <> "" Then
WriteIni = WritePrivateProfileString(section, Variable, valeur, fichier_ini)
End If
End Function
'fonction de suppression une valeur dans les fichiers init
'
Function SupIni(ByVal section As String, ByVal Variable As String) As String
If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
SupIni = WritePrivateProfileString(section, Variable, 0&, fichier_ini)
End If
End Function
'fonction de suppression une section dans les fichiers init
'
Function SupsectionIni(ByVal section As String) As String
If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
SupsectionIni = WritePrivateProfileSection(section, 0&, fichier_ini)
End If
End Function
Conclusion
Un grand merci à tous ceux qui partagent leurs sources, c'est vraiment très pratique et très instructif. Cette source est un compilé de différentes sources sur le sujet, donc pas la peine de me fustiger avec des "ça existe déjà" ou "encore une" :o))))). Source tester à l'origine sur vb6 (peut etre compatible avec vb5 à voir). Merci de m'avoir lu....
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
fichier *.ini [ par Nic ]
comment faire pour lire un fichiers inia la ligne que l'on veut
API pour fichier INI [ par thierry ]
hello a toutes et a tousil est possible d'ecrire et de lire les fichiers ini grace au 2 api bien connue que sont respectivement writeprivateprofilestr
Fichier ini [ par Tarkhun ]
Salut à tous,Voici mon probléme:dans code j'utilise des fichiers ini pour stocker les chemins d'accés aux bases de données et aux fichiers wordPour ce
rechercher un texte dans un fichier INI et le remplacer [ par flatmax ]
salut, j'ai besoin d'aidej'aimerais savoir comment faire pour trouver dans un fichier INI la valeur d'un texte.Par exemple :color=#000000En faite c'es
Enregistrer / charger un fichier .ini dans un programme [ par Mick ]
Salut ! Je débute en VB et j'aimerai savoir comment faire pour tout d'abord enregistrer le contenu des textbox de mon form dans un fichier .ini (txt q
lire fichier .ini [ par slo ]
Existe-t-il une API windows ou un composant VB pour lire facilement les propriétés des fichiers .INI
Combobox & Fichier ini [ par chalmi ]
Voila mon probleme, je ne suis pas encore un grand developpeur VB, mais je voudrais afficher dans une premiere combobox les valeurs des sections de mo
Comment récupérer une entrée dans un fichier .ini ? [ par Sakalan ]
Comment récupérer une entrée dans un fichier .ini ?Contenu du fichier.ini :[ModelePDF]RepertoirePDF="C:\PDF_IPC\"Merci d'avance !
Exécution d'un fichier INI et d'un raccouci windows [ par ckoo ]
Je voudrais savoir comment exécuter un fichier INI depuis un prog VB et comment exécuter un raccouci merci !
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|