Bonjour
existe-t-il un moyen de lire toutes les sections (rubriques) d'un fichier ini afin de pouvoir le mettre dans un tableau...
P.S. j'ai trouvé du code en C++ ou en Delphi mais je suis en VB.Net et je ne trouve rien...
Merci d'avance
Bonjour
existe-t-il un moyen de lire toutes les sections (rubriques) d'un fichier ini afin de pouvoir le mettre dans un tableau...
P.S. j'ai trouvé du code en C++ ou en Delphi mais je suis en VB.Net et je ne trouve rien...
Merci d'avance
J'ai posté une classe qui fait ça dans le forum "Contribuez"
C'est du C#, mais il suffit de le compiler dans une DLL et référencer la DLL dans ton projet VB. Ou alors tu la convertis en VB, au choix...
Bonjour,
Rien trouvé, tu es sur ?
Tu as aussi dans ce forum des personnes qui se sont posées la même question à intervalle régulier, notament ici http://www.developpez.net/forums/d61...-correctement/
Juste nikoko34. mais il peut voir ca aussi, c'est plus facile à utiliser :
http://plasserre.developpez.com/v4-18.htm
Bonjour à vous trois....
Je ne sais pas si j'ai été assez clair dans mon message ou bien je ne sais pas vraiment le code. Chose probable car je ne suis pas vraiment habile (pour le moemnt) avec ce type de code.
Tomlev, merci pour la proposition mais je ne suis pas assez habile en programation pour utiliser un dll..... le convertir, etc..
tssi555, c'est a partir de ce site que j'ai démarer ma programation pour l'utilisation du fichier ini. Mais il n'y a rien sur cette page qui fait ce que je veux faire. Merci quand même...
Donc, peut être que j'ai rien compris (c'est possible) de vos exemple mais ce que j'aimerais faire c'est que si j'ai un fichier ini qui ressemble à cela.
[Section1]
var1=sdfkgjhbask
var2=sfjgkas
[Section2]
var1=fsangl
var2=nsdjf
J'aimerais récupérer seulement le nom des rubriques (Section1 et Section2) afin de les mettre dans un tableau.
merci à vous
OK, c'est plus clair maintenant.
Tu ne connais pas à l'avance le nom de tes sections ce qui rend non efficace le code que l'on vient de te fournir...
Ta recherche revient donc à trouver dans un fichier l'ensemble des termes mis entre crochets.
Pour celà, une lecture itérative des lignes du fichier avec test que la ligne contient comme premier caractère non blanc un crochet ouvrant et comme dernier caractère non blanc le crochet fermant (sans crochet ouvrant et fermant dans la chaine) devrait faire l'affaire.
Ce n'est pas forcément utile d'exploiter les regular expression à moins que la syntaxe autorisée des noms de section autorise d'autres variantes...
Tu n'as pas besoin de savoir programmer en C# pour ça... Il n'y a pas une ligne de code à écrire : tu crées un nouveau projet C# de type "bibliothèque de classes", tu ajoutes un fichier de code, et tu colles le code que je t'ai donné. Tu compiles le tout, tu obtiens une DLL. Et dans ton projet VB, tu fais "ajouter un référence", et tu sélectionnes la DLL.
Effectivement, la méthode indiquée permet de récupérer une propriété du fichier INI en connaissant sa section, mais pas de lister les sections
Avec le code que je t'ai donné, la propriété Sections contient la liste des sections (sous forme d'un Dictionary). Tu peux l'utiliser comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim ini As New IniFile("config.ini") For Each section As String In ini.Sections.Keys Console.WriteLine(section) Next
merci à vous... j'aurais apris certaine concept du dll...
Mais j'ai trouvé une petite fonction que je ne saurai expliquer mais qui fonctionne très bien.
J'ai déclaré Public Tableau() As String dans un Module
Dans mon Load de ma Form
Dans un Module
Code : Sélectionner tout - Visualiser dans une fenêtre à part EnumSections(Tableau, "m:\Ouverture_de_Contrat\opener.ini")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Imports System.Runtime.InteropServices 'Utilisé pour lire que les Sections du fichier INI et les mettres dans un Tableau '************************************************** <DllImport("kernel32.dll", CharSet:=CharSet.Auto)> Function GetPrivateProfileSectionNames(ByVal lpszReturnBuffer As IntPtr, ByVal nSize As Integer, ByVal lpFileName As String) As Integer End Function Public Function EnumSections(ByRef sections() As String, ByVal path As String) As Boolean Dim bRet As Boolean = True Dim pBuff As IntPtr = Marshal.AllocCoTaskMem(458752) Dim iRet = GetPrivateProfileSectionNames(pBuff, 458752, path) If iRet > 0 Then Dim sRet As String = Marshal.PtrToStringAuto(pBuff, iRet) sections = sRet.Substring(0, sRet.Length - 1).Split(vbNullChar) Else bRet = False End If Marshal.FreeCoTaskMem(pBuff) Return bRet End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager