begin process at 2012 02 16 20:35:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > ENUMÈRER LES SECTIONS D'UN FICHIER .INI

ENUMÈRER LES SECTIONS D'UN FICHIER .INI


 Information sur la source

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :03/01/2003 Date de mise à jour :18/01/2005 19:33:40 Vu / téléchargé :3 299 / 215

Auteur : vbmore

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

 Description

Ben, il liste les sections d'un Fichier .INI. Section = Les texte en crochet (ex : "[Windows]") & donne les données de toutes les sections sous la forme "Key=Value"

Source

  • Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  • Private Sub command2_click()
  • ' cette sub vient de ApiGuide (www.allapi.net)
  • ' +commentée
  • ' +bien retapée
  • Dim szBuf As String, Length As Integer
  • Dim SectionArr() As String, m As Integer
  • ' On créer un buffer
  • szBuf = String$(255, 0)
  • ' On appelle l'api pour le remplir des sections du fichier .INI
  • ' Les sections sont séparer par chr(0)
  • ' La valeur retourné (length) est la valeur
  • Length = GetPrivateProfileSectionNames(szBuf, 255, Text1.Text)
  • ' On extrait la valeur de la chaine remplit(le reste, c'est du chr(0))
  • szBuf = Left$(szBuf, Length)
  • ' On découpe la chaine dans un tableau
  • SectionArr = Split(szBuf, vbNullChar)
  • ' Un for qui liste toute les sections
  • For i& = 0 To UBound(SectionArr)
  • ' SectionArr(i&) est une section
  • debug.print SectionArr(i&)
  • ShowKeyValue SectionArr(i&), Text1.Text
  • Next m
  • End Sub
  • 'Et en bonus
  • Sub ShowKeyValue(section As String, file As String)
  • 'Je ai fais moi-même cette sub
  • ' Merci encore à ApiGuide
  • ' nBufLength définit la longueur maxi des données lues (mettez plus pour un gros fichier)
  • ' Win95&+ Maxi : 2^16
  • ' WinNT&+ Maxi : 2^32
  • Dim nBufLength as Long
  • nBufLength = 255
  • Dim szBuf As String * nBufLength
  • Dim count as Long
  • count= GetPrivateProfileSection(section, szBuf, nBufLength, file)
  • dim arKeyValue() as String
  • arKeyValue = Split(Left(szBuf, count), count)
  • ' arKeyValue contient des strings sous la forme "Key=Value"
  • For i& = 0 To UBound(arKeyValue)
  • 'arKeyValue (i&) est une entrée de la forme "Key=Value"
  • Debug.Print arKeyValue (i&)
  • Next
  • End Sub
Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Sub command2_click()
    ' cette sub vient de ApiGuide (www.allapi.net)
    ' +commentée
    ' +bien retapée
    Dim szBuf As String, Length As Integer
    Dim SectionArr() As String, m As Integer

    ' On créer un buffer
    szBuf = String$(255, 0)
    ' On appelle l'api pour le remplir des sections du fichier .INI
    ' Les sections sont séparer par chr(0)
    ' La valeur retourné (length) est la valeur
    Length = GetPrivateProfileSectionNames(szBuf, 255, Text1.Text)
    ' On extrait la valeur de la chaine remplit(le reste, c'est du chr(0))
    szBuf = Left$(szBuf, Length)
    ' On découpe la chaine dans un tableau
    SectionArr = Split(szBuf, vbNullChar)
    ' Un for qui liste toute les sections
    For i& = 0 To UBound(SectionArr)
	' SectionArr(i&) est une section
	debug.print SectionArr(i&)
                ShowKeyValue SectionArr(i&), Text1.Text
    Next m
End Sub


'Et en bonus
Sub ShowKeyValue(section As String, file  As String)
     'Je ai fais moi-même cette sub
     ' Merci encore à ApiGuide

                ' nBufLength définit la longueur maxi des données lues (mettez plus pour un gros fichier)
                ' Win95&+ Maxi : 2^16
                ' WinNT&+ Maxi : 2^32
	Dim nBufLength as Long
	nBufLength = 255
	Dim szBuf As String * nBufLength
	Dim count as Long

	count= GetPrivateProfileSection(section, szBuf, nBufLength, file)
	dim arKeyValue() as String
	arKeyValue = Split(Left(szBuf, count), count)
	' arKeyValue contient des strings sous la forme "Key=Value"
	
	For i& = 0 To UBound(arKeyValue)
                   'arKeyValue (i&)  est une entrée de la forme "Key=Value"
	   Debug.Print arKeyValue (i&) 
                Next 
End Sub

 Conclusion

Je déconseille cette méthode pour des gros fichiers (Buffer fixe + Split = grosse consomation mémoire)
Prenez plutôt une autre source de VBFrance(y'en a plein) pour lire directement le fichier.

J'ai retapé cette source sans VB6 mais avec le notepad (je suis passer comme beaucoup à C# depuis presque 2 ans)
Il risque d'avoir un gros tas d'erreurs.

 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


 Historique

18 janvier 2005 19:33:41 :
Ajout de la lecture des données des sections

 Sources du même auteur

OBTENIR À L'AVANCE LA TAILLE D'UN TEXTE DESSINÉ SUR UNE FORM...
UN SIMPLE PROGRAMME MULTI-THREAD
COPIER UNE STRUCTURE "TYPE" DANS UNE AUTRES
IMPRIMER N'IMPORTE QUEL FICHIER
Source avec Zip EVENT QUAND LA FORM BOUGE (SUBSCLASSING)

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de matrey le 03/01/2003 23:01:26

ouais. connais déjà, mais apparemment c'était pas encore sur VBFrance... Pas mal...

Commentaire de Alan71 le 03/01/2003 23:14:29

Voici un exemple typique de code non-complet (mé C bien kan même)

Je n'es pas l'api-guide, malheureusement pour vous. Sachez tt de même k'il existe d'otres api pour les inis (récupérations directes de valeurs, etc...). Je vous renvoie donc a l'api-guide (pour celles-ci et tt les autres).

Ce sont des apis trop peu connus, et tré pratique. Même si son code n'est pas complet, il est necessaire de remercier vbmore et non pas de le blamer (7/10).

Commentaire de LordBob le 04/01/2003 00:33:49

cool j'adore ta source, elle va pouvoir me servir... merci...

Commentaire de dionysos6868 le 04/01/2005 21:22:42

Super ta source je le cherchais merci beaucoup

une question pour avoir toute les variable d'une section on fait comment ???

Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,076 sec (3)

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