Accueil > > > DLL LIREFICHIER INI
DLL LIREFICHIER INI
Information sur la source
Description
Bonjour à tous, Ci-joint la source d'une DLL me permettant de lire , écrire et supprimer dans un fichier INI. Le principale du code est issur de la source de SupraDolph (http://www.vbfrance.com/codes/INI-VB-NET_7709.asp x#addcomment) que j'ai adapter dans un DLL en rendant le chemin et le nom du fichier INI paraméttrable.
Source
- Public Class FichierIni
-
- #Region "Variable"
-
- 'Nom du fichier INI
- Dim FichierINI As String
- 'Constante
- Const MAX_ENTRY As Integer = 32768
-
- #End Region
-
- #Region "Définition du chemin et du nom du fichier INI"
-
- 'Déclaration de la propriété du chemin du fichier
- 'Renseignement de la propriété "CheminFichier"
-
- Public Property CheminFichier()
-
- 'Récupère la propriété "CheminFichier"
- Get
- CheminFichier = FichierINI
- End Get
-
- 'Renseigne la propriété "CheminFichier"
- Set(ByVal Value)
- FichierINI = Value
- End Set
-
- End Property
-
- #End Region
-
- #Region "Lire INI"
-
- Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
-
- 'Cette API permet de lire des fichiers d'initialisations. La fonction retourne 0 si la lecture du fichier d'initialisation a échoué, sinon elle retourne 1.
- 'lpApplicationName définit le nom de la section,
- 'lpKeyName définit le nom de la clef,
- 'lpDefault retourne la valeur par défaut si la clef n'est pas définie,
- 'lpReturnedString contient la valeur de la clef si elle existe sinon elle contient la valeur lpDefault,
- 'nSize est la taille de la variable lpReturnedString en octet,
- 'lpFileName définit le nom du fichier d'initialisation.
-
- Function LireINI(ByVal Entete As String, ByVal Variable As String) As String
- Dim defval As String = ""
- Try
- Dim StrBuild As New System.Text.StringBuilder(MAX_ENTRY)
- Dim Ret As Integer = GetPrivateProfileString(Entete, Variable, defval, StrBuild, MAX_ENTRY, FichierINI)
- Return StrBuild.ToString
- Catch
- Return defval
- End Try
- End Function
-
- #End Region
-
- #Region "Ecrire INI"
-
- 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
-
- 'Cette API permet de créer ou de modifier vos propres fichiers d'initialisations sans se soucier des détails (par exemple... la gestion des fichiers), si le fichier n'existe pas il est créé, sinon il est modifié. La fonction retourne 0 si la création ou la modification du fichier d'initialisation a échoué, sinon elle retourne 1.
- 'lpApplicationName définit le nom de la section,
- 'lpKeyName définit le nom de la clef,
- 'lpString définit la valeur à ajouter,
- 'lpFileName définit le nom du fichier d'initialisation.
-
- Function EcrireINI(ByVal Entete As String, ByVal Variable As String, ByVal Valeur As String)
- WritePrivateProfileString(Entete, Variable, Valeur, FichierINI)
- End Function
-
- #End Region
-
- #Region "Supprime INI"
-
- Function SupprimeINI(ByVal Entete As String, Optional ByVal Variable As String = Nothing)
- WritePrivateProfileString(Entete, Variable, vbNullString, FichierINI)
- End Function
-
- #End Region
-
- #Region "Sections INI"
-
- Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer() As Byte, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
-
- Function SectionsINI() As ArrayList
- SectionsINI = New ArrayList
- Dim Buffer(MAX_ENTRY) As Byte
- Dim BuffStr As String
- Dim PrevPos As Integer = 0
- Dim Length As Integer
- Try
- Length = GetPrivateProfileSectionNames(Buffer, MAX_ENTRY, FichierINI)
- Catch
- Exit Function
- End Try
- Dim ASCII As New System.Text.ASCIIEncoding
- If Length > 0 Then
- BuffStr = ASCII.GetString(Buffer)
- Length = 0
- PrevPos = -1
- Do
- Length = BuffStr.IndexOf(ControlChars.NullChar, PrevPos + 1)
- If Length - PrevPos = 1 OrElse Length = -1 Then Exit Do
- Try
- SectionsINI.Add(BuffStr.Substring(PrevPos + 1, Length - PrevPos))
- Catch
- End Try
- PrevPos = Length
- Loop
- End If
- End Function
-
- #End Region
-
- End Class
-
Public Class FichierIni
#Region "Variable"
'Nom du fichier INI
Dim FichierINI As String
'Constante
Const MAX_ENTRY As Integer = 32768
#End Region
#Region "Définition du chemin et du nom du fichier INI"
'Déclaration de la propriété du chemin du fichier
'Renseignement de la propriété "CheminFichier"
Public Property CheminFichier()
'Récupère la propriété "CheminFichier"
Get
CheminFichier = FichierINI
End Get
'Renseigne la propriété "CheminFichier"
Set(ByVal Value)
FichierINI = Value
End Set
End Property
#End Region
#Region "Lire INI"
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
'Cette API permet de lire des fichiers d'initialisations. La fonction retourne 0 si la lecture du fichier d'initialisation a échoué, sinon elle retourne 1.
'lpApplicationName définit le nom de la section,
'lpKeyName définit le nom de la clef,
'lpDefault retourne la valeur par défaut si la clef n'est pas définie,
'lpReturnedString contient la valeur de la clef si elle existe sinon elle contient la valeur lpDefault,
'nSize est la taille de la variable lpReturnedString en octet,
'lpFileName définit le nom du fichier d'initialisation.
Function LireINI(ByVal Entete As String, ByVal Variable As String) As String
Dim defval As String = ""
Try
Dim StrBuild As New System.Text.StringBuilder(MAX_ENTRY)
Dim Ret As Integer = GetPrivateProfileString(Entete, Variable, defval, StrBuild, MAX_ENTRY, FichierINI)
Return StrBuild.ToString
Catch
Return defval
End Try
End Function
#End Region
#Region "Ecrire INI"
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
'Cette API permet de créer ou de modifier vos propres fichiers d'initialisations sans se soucier des détails (par exemple... la gestion des fichiers), si le fichier n'existe pas il est créé, sinon il est modifié. La fonction retourne 0 si la création ou la modification du fichier d'initialisation a échoué, sinon elle retourne 1.
'lpApplicationName définit le nom de la section,
'lpKeyName définit le nom de la clef,
'lpString définit la valeur à ajouter,
'lpFileName définit le nom du fichier d'initialisation.
Function EcrireINI(ByVal Entete As String, ByVal Variable As String, ByVal Valeur As String)
WritePrivateProfileString(Entete, Variable, Valeur, FichierINI)
End Function
#End Region
#Region "Supprime INI"
Function SupprimeINI(ByVal Entete As String, Optional ByVal Variable As String = Nothing)
WritePrivateProfileString(Entete, Variable, vbNullString, FichierINI)
End Function
#End Region
#Region "Sections INI"
Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer() As Byte, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Function SectionsINI() As ArrayList
SectionsINI = New ArrayList
Dim Buffer(MAX_ENTRY) As Byte
Dim BuffStr As String
Dim PrevPos As Integer = 0
Dim Length As Integer
Try
Length = GetPrivateProfileSectionNames(Buffer, MAX_ENTRY, FichierINI)
Catch
Exit Function
End Try
Dim ASCII As New System.Text.ASCIIEncoding
If Length > 0 Then
BuffStr = ASCII.GetString(Buffer)
Length = 0
PrevPos = -1
Do
Length = BuffStr.IndexOf(ControlChars.NullChar, PrevPos + 1)
If Length - PrevPos = 1 OrElse Length = -1 Then Exit Do
Try
SectionsINI.Add(BuffStr.Substring(PrevPos + 1, Length - PrevPos))
Catch
End Try
PrevPos = Length
Loop
End If
End Function
#End Region
End Class
Conclusion
Super simple et pratique à utiliser.
Soyer indulgent je débute.
Encore merci à SupraDolph pour l'origine
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
Supprimer des lignes dans les fichiers *.ini [ par Camille ]
Je parviens sans problème à lire et écrire ds les fichiers *.ini mais je n'arrive pas à les supprimmer je ne sais quelle API utiliser ni quelle foncti
Win.ini [ par Vincentsoft ]
SalutJe voudrai savoir comment on peut aller lire des infos dans Win.ini.Etant donné qu'il y a plusieur rubrique ds ce fichier, je n'arrive pas à dir
LIEN ENTRE VB6 ET WIN.INI [ par Funcman ]
SALUT A TOUS!!!!!!!J'ai un prob!Voila: je suis en train de faire un petit tableur en vb6 et je voudrais savoir comment on fait pour ecrire dans le fic
comment enregistrer plusieurs textbox dans un même fichier "ini" ou "txt" ???? [ par Cutkill ]
omment enregistrer plusieurs textbox dans un même fichier "ini" ou "txt" de facon a obtenir ceci (exemple tiré d'un ini d'un programme):fichier ini :
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
|
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
|