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

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

Votre réponse

2 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 20 janv. 2009 à 16:56
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") 









Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de PCPT
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 20 janv. 2009 à 17:20
0
Merci
merci beaucoup....
Commenter la réponse de cs_MagDix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.