Soyez le premier à donner votre avis sur cette source.
Vue 6 525 fois - Téléchargée 470 fois
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
23 oct. 2006 à 19:02
L'écriture ne pose pas de problème !
Le programme bloque sur :
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) ?********ici sur left$: erreur de compilation : le caractère de déclaration de type ne correspond pas au type de données déclaré.**************
SectionArr = Split(GetIni, vbNullChar)
For m = 0 To UBound(SectionArr)
GetIni = SectionArr(m)
Next m
End If
End Function
Merci à vous.
Laurans
27 sept. 2005 à 16:57
Quelqu'un à une adaptation pour le vb.net ?
Amicalement
Patrick
26 sept. 2005 à 06:49
dim INI as new DLLfichierini
INI.Set_fichier App.path & "\config.ini"
Et (si dans le même sub)
MsgBox INI.Get_fichier
Mais ta solution peut etre appliquée si tu préfères ce genre d'utilisation :)
21 sept. 2005 à 19:10
C'est le source de mon ancien supérieur aussi dois-je lui demander son autorisation avant de le produire. Mais ce module utilie enormément de fonction et d'API pour verifier les / en double ou verifier qu'il n'y en a qu'un, pour recuperer les chemin, etc...
J'espère que mon chef sera d'accord pour le publier car il est vraiment complet...
Sinon je converse dans le sens que le partage des connaissances est bébéfiques à tout le monde...
++
Silk - Sky
19 sept. 2005 à 09:41
Public Property Get fichier() As String
Public Property Let fichier(ByRef nom_fichier As String)
on pourrait ainsi utiliser :
INI.fichier = App.path & "\config.ini"
et
MsgBox INI.fichier
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.