begin process at 2010 02 10 07:27:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > MANIPULEZ LES FICHIERS INI AVEC UN MODULE DE CLASS

MANIPULEZ LES FICHIERS INI AVEC UN MODULE DE CLASS


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Classé sous :classe, fichier, ini Niveau :Débutant Date de création :18/09/2005 Vu / téléchargé :4 869 / 390

Auteur : marckisscool

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 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....

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GESTION DE PARC AUTOMOBILE AVEC SÉRIALISATION par guyr07
Source avec Zip Source avec une capture Source .NET (Dotnet) FICHIERS_CACHÉS_LECTURE_SEULE par Le Pivert
Source avec Zip Source avec une capture CHANGEUR D'ICONES par djgab21
Source .NET (Dotnet) DIRECTDISKACCESS par XelectroX
Source avec Zip Source avec une capture UTILITAIRE WAV, MID ET MP3 par SnkVrt

 Sources en rapport avec celle ci

Source avec Zip MODULE DE CLASSE FICHIER par webnomad
Source .NET (Dotnet) CRÉER DES FICHIERS DE LOG EN QUELQUES LIGNES par Raidwan
Source .NET (Dotnet) MANIPULATION DES FICHIERS INI EN VB.NET par Donf
Source avec Zip REMPLACER L'API WINDOWS READINI (VIA DES DICTIONNAIRES) par franckydeluka
Source avec Zip Source avec une capture LIRE/ECRIRE/SUPPRIMER/RECHERCHER DANS FICHIERS INI,TXT ... par Exploreur

Commentaires et avis

Commentaire de Renfield le 19/09/2005 09:41:30 administrateur CS

Dommage que tu n'utilise pas des propriétés :

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

Commentaire de silkscalp le 21/09/2005 19:10:57

Je vais vous donner la source d'un code (dès que j'aurais rebooter sous windows) servant à creer un fichier ini automatiquement celui ci n'existe pas au lancement de l'Appli, permettant de se servir des info du fichier ini (evidemment) et qui est le fruit d'amélioration au fur et a mesure du temps.
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

Commentaire de marckisscool le 26/09/2005 06:49:39

Pour répondre à RENFIELD , il n'est pas necessaire d'utiliser ces fonctions de Get et let puisque si tu ecrit ce code tu auras le même resultat(ecriture que je trouve plus facile à lire quand tu relis un code basé uniquement sur ces propriétés,c'est la raison de mon choix):
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 :)

Commentaire de objectifweb le 27/09/2005 16:57:00

Bonjour,
Quelqu'un à une adaptation pour le vb.net ?

Amicalement
Patrick

Commentaire de net-pratique le 23/10/2006 19:02:48

Bonjour, quand je test votre source dans un projet simple cela fonctionne parfaitement, mais j’essaie d’adapter votre code dans un de mes projets, utilisant un autre module de classe avec Option Explicit, il est  impossible de lire le fichier INI.
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

 Ajouter un commentaire


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 !


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales