VB.Net Fichier INI - Trouver le nom des clées dans une Rubrique [Résolu]

Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
- - Dernière réponse : cs_MagDix
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
- 20 janv. 2009 à 17:20
Bonjour....


J'aimerais utiliser un fichier ini afin que l'utilisateur puisse ajouter de l'info dans ce fichier
Cette information ajouter sera des répertoire et sera utilisé pour ouvrir des fichiers.


Je n'ai aucun problème pour lire mon fichier ini et écrire dans le fichier ini.


Mon problème est que si j'ai par exemple, un fichier ini qui ressemble à cela...


[Repertoire]
Var1 = c:\szdgjfdx
Var2 = c:\sgsdg
Var3 = c:\fdhukgjg


Est-il possible de récupérer le nom des clés sans connaître leur nom pour ensuite créer un tableau?
En d'autre mots,
Je connais le nom de la rubrique ([Repertoire]) et je veux mettre les répertoires des clées (c:\szdgjfdx,
c:\sgsdg et c:\fdhukgjg) dans un tableau sans connaître le nom des clées (Var1, Var2 et Var3) ?


Ou encore si c'est possible de lire chaque ligne de la rubrique Repertoire afin de répérer tout ce qui se trouve avant le " =" par exemple...




merci de votre aide
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
24
3
Merci

salut,


'    LISTER LES CLÉS D'UNE SECTION D'UN FICHIER INI'    http://www.codyx.org/snippet_lister-cles-section-fichier-ini_688.aspx#2074'    Posté par [ Willi ] le 28/09/2008


_



Friend




Function


GetPrivateProfileSection(

ByVal

lpAppName

As




String

,

ByVal

lpReturnedString

As


IntPtr,

ByVal

nSize

As




Integer

,

ByVal

lpFileName

As




String

)

As




Integer






End




Function





Public




Function

EnumIniKeys(

ByVal

IniPath

As




String

,

ByVal

Section

As




String

)

As




String

()



Dim

pBuffer

As

IntPtr =
Marshal.AllocHGlobal(32768)Dim keys() AsString = Nothing





Try





Dim

iRet

As




Integer

= GetPrivateProfileSection(Section,
pBuffer, 32768, IniPath)



If

(iRet > 0)


Then





Dim

sReturned


As




String

=
Marshal.PtrToStringAnsi(pBuffer, iRet - 1)

keys =
sReturned.Split(vbNullChar.ToCharArray(),
StringSplitOptions.RemoveEmptyEntries)If (keys IsNotNothingAndAlso keys.Length
> 0) Then


For

i

As




Integer

= 0

To

keys.Length -
1

keys(i) = keys(i).Substring(0, keys(i).IndexOf("="))Next



End




If






Else






Return




Nothing






End




If





Catch

ex

As


Exception



Finally






If

pBuffer
IntPtr.Zero

Then




Marshal.FreeCoTaskMem(pBuffer)EndIf



End




Try





Return

keys



End




Function





'----------------------------------------------------------------


'Remarques :

'Ajouter la directive'Imports
System.Runtime.InteropServices''Utilisation:'Dim keys as
string()=EnumIniKeys("c:\monIni.ini","Section1") 









Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PCPT
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
merci beaucoup....
Commenter la réponse de cs_MagDix