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

Résolu
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 20 janv. 2009 à 15:52
cs_MagDix Messages postés 531 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

2 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 janv. 2009 à 16:56

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") 









3
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
20 janv. 2009 à 17:20
merci beaucoup....
0
Rejoignez-nous