IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Vb.Net Lire toutes les sections d'un fichier INI


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Vb.Net Lire toutes les sections d'un fichier INI
    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

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    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...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    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/

  4. #4
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Juste nikoko34. mais il peut voir ca aussi, c'est plus facile à utiliser :

    http://plasserre.developpez.com/v4-18.htm

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par tssi555 Voir le message
    Juste nikoko34. mais il peut voir ca aussi, c'est plus facile à utiliser :

    http://plasserre.developpez.com/v4-18.htm
    C'est vrai que des fonctions Win32 existent déjà pour les fichier INI, mais je trouve un peu dommage de s'emm****er avec du P/Invoke, avec les risques que ça comporte, quand on peut faire du code 100% managé...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    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...

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Magdix Voir le message
    Tomlev, merci pour la proposition mais je ne suis pas assez habile en programation pour utiliser un dll..... le convertir, etc..
    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.

    Citation Envoyé par Magdix Voir le message
    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...
    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

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnumSections(Tableau, "m:\Ouverture_de_Contrat\opener.ini")
    Dans un Module
    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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2008, 15h29
  2. Lire toutes les sections d'un fichier INI
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/10/2007, 09h09
  3. Les fichiers .INI, lire toutes les informations d'une section
    Par echap2000 dans le forum C++Builder
    Réponses: 9
    Dernier message: 15/05/2006, 12h14
  4. renvoyer toutes les section d'un fichier .ini
    Par user_steph dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/07/2005, 16h06
  5. fichier ini -> recuperer toute les sections
    Par abignon dans le forum MFC
    Réponses: 2
    Dernier message: 08/04/2004, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo