Les Snippets

Connexion

Fusionner deux fichiers INI

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 15/06/2007 13:11:55 et initié par Renfield [Liste]
Date de mise à jour : 20/06/2007 22:00:09
Vue : 4141
Catégorie(s) : API, Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- Delphi 5
- Windev
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 15/06/2007
Posté par Renfield [Liste]
Private Declare Function GetPrivateProfileSection Lib "kernel32.dll" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Sub MergeIniFiles(ByRef vsFirstFile As String, ByRef vsSecondFile As String, Optional ByVal vsDestFile As String)
Dim sBuffer As String
Dim nLength As Long
Dim iSection As Long
Dim iLine As Long
Dim xsSections() As String
Dim xsLines() As String
Dim nPos As Long
Dim nBuffserSize As Long
   If LenB(vsDestFile) Then
       FileCopy vsSecondFile, vsDestFile
   Else
       vsDestFile = vsSecondFile
   End If
   
   nBuffserSize = 0
   Do
       nBuffserSize = nBuffserSize + &H4000&
       sBuffer = Space$(nBuffserSize)
       nLength = GetPrivateProfileSectionNames(sBuffer, nBuffserSize, vsFirstFile)
   Loop While nLength = nBuffserSize - 2
   xsSections = Split(Left$(sBuffer, nLength), vbNullChar)
   For iSection = 0 To UBound(xsSections)
       If LenB(xsSections(iSection)) Then
           nBuffserSize = 0
           Do
               nBuffserSize = nBuffserSize + &H4000&
               sBuffer = Space$(nBuffserSize)
               nLength = GetPrivateProfileSection(xsSections(iSection), sBuffer, nBuffserSize, vsFirstFile)
           Loop While nLength = nBuffserSize - 2
           xsLines = Split(Left$(sBuffer, nLength), vbNullChar)
           
           For iLine = 0 To UBound(xsLines)
               nPos = InStr(xsLines(iLine), "=")
               If nPos Then
                   WritePrivateProfileString xsSections(iSection), Left$(xsLines(iLine), nPos - 1), Mid$(xsLines(iLine), nPos + 1), vsDestFile
               End If
           Next iLine
       End If
   Next iSection
End Sub 
Remarque :
MergeIniFiles App.Path & "\First.ini", App.Path & "\Second.ini" , App.Path & "\Merge.ini"

Le fichier de destination est optionnel. Si vous ne mettez rien, le fichier deux sera la cible.
NB: Le fichier 1 est prioritaire sur le fichier 2. C'est a dire que si un parametre existe dans les deux fichiers, c'est la valeur contenue dans le premier fichier que l'on retrouvera dans le fichier résultant de la fusion.

Snippets en rapport avec : Ini, Configuration, Merge, Fusionner, Fusion



Codes sources en rapport avec : Ini, Configuration, Merge, Fusionner, Fusion

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE FICHIER DE CONFIGURATION (REGISTRE/INI)
Alors, rien d'exceptionel dans ce code, juste une classe simplifiant les api windows de lecture/éc...

{PHP} CLASSE COMPLÈTE DE GESTION DES FICHIERS DE CONFIGURATION INI.
Je crois que le titre résume plutôt bien l'utilité de la classe :) ... C'est une classe qui permet d...

{C# / C#.NET} DECOUPER/FUSIONNER DES FICHIERS
Découper et fusionner des fichiers en C# Suite à la discussion sur http://www.vbfrance.com/code.a...

{JAVA / J2EE} GESTION DE FICHIER DE CONFIGURATION .INI
Je devais utiliser un fichier de configuration (.ini) à la windows sur mon appli Java. Du coup, j'ai...

{Visual Basic, VB6, VB.NET, VB 2005} ENREGISTRER ET APPLIQUER LES PARAMÈTRES D'UNE FORM EN 2 LIGNES [CTL]
C'est une question qui revient sans cesse : comment ouvrir une Form en gardant sa dernière configura...

{PHP} LECTURE ECRITURE DANS UN FICHIER DE CONFIGURATION , DONNÉES
Je viens de faire ces 2 fonctions dans le but d'écrire et lire des données en dur. Ce script peut ê...

{PHP} GÉRER DES FICHIERS DE CONFIGURATION INI [POO]
Encore une classe PHP opérationnelle et complète qui reprend les lignes essentielles de la classe TI...

{Javascript / DHTML} GESTION DES FICHIERS .INI
j'ai voulu créer l'équivalent de la gestion des fichiers .ini que l'on retouve dans la plupart des...

{PHP} GESTION D'UN FICHIER DE CONFIGURATION
Ce code tiré d'une source de winzou (http://www.phpcs.com/code.aspx?id=29179) permet de gérer un fic...

{C# / C#.NET} CLASS CONFINI POUR GERER LES FICHIERS .INI
Encore un boulet qui fait dans le .ini à l'heure du xml... Ben vi :) Bon, désolé, c'est mon premie...