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 :

Lecture du fichier ini 1 ligne pour chaque Textbox


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut Lecture du fichier ini 1 ligne pour chaque Textbox
    Bonsoir,

    J'en revient pour mon problème de lecture avec mon fichier ini
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            Dim a As String = "IP ET PORT"
            Dim cIniFile As String = "config\infos.ini"
            Dim bOk As Boolean
            bOk = Put_Private_Profile_String(a, "ip_1", MaskedTextBox4.Text, cIniFile)
            bOk = Put_Private_Profile_String(a, "port_1", MaskedTextBox8.Text, cIniFile)
    les infos vont bien dans mon fichier de config
    tout se passe tres bien sauf pour la lecture d'une ligne avec le form_load

    dans mon fichier ini j'ai pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [CONFIG]
    chemin=D:\Mes_Jeux\Wolfenstein
     
    [IP]
    ip_1=127.0.0.1
    port_1=27960
    et je voudrais lire la ligne "ip_1=127.0.0.1" sans le ip_1= dans un TextBox
    mais la je ne sait pas du tout comment faire ceci

    Pouvez vous m'aider s'il vous plait ?

    Merci

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Je t'aurai pas déjà donné un code pour lire un fichier .ini ?
    http://www.developpez.net/forums/sho...d.php?t=504246

    Après si c'est la conversion de code qui te gêne :
    http://dotnet.developpez.com/outils/...der#kamalpatel

  3. #3
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Salut,

    Le programme marche pas avec vista
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Contactez Microsoft Corporation pour obtenir de  l''assistance.
     Ce problème a été provoqué par une erreur de compatibilité entre Windows  Vista et cette version de Microsoft Deprecated DLL Components. Ce  programme a été créé par Microsoft Corporation.
     Recommandation
    sinon as tu un petit code pour mettre une ligne dans un texbox s'il te plait pour VB.NET

    Merci

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Perso j'ai vista et j'ai testé ... donc je pensais que c'était nikel ...
    Lance ton code en debug avec Visual Studio ou faire un try--catch autour du block qui utilise mon code pour afficher l'exception. Montre moi aussi ton code s'il te plait.

  5. #5
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Mon code c'est celui la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim a As String = "IP ET PORT"
    Dim cIniFile As String = "config\infos.ini"
    Dim bOk As Boolean
    bOk = Put_Private_Profile_String(a, "ip_1", MaskedTextBox4.Text, cIniFile)
    bOk = Put_Private_Profile_String(a, "port_1", MaskedTextBox8.Text, cIniFile)
    mais je ne sait pas comment le faire afficher dans chaque Textbox ligne 1 vas dans un TextBox1 Ligne 2 va dans un TextBox2 etc....

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Là tu me montre l'écriture ... c'est la lecture que je veux. Et fait un debug pour pouvoir savoir sur quelle ligne exactement ton programme crash.

  7. #7
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Et puis ce serai un code genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox1.Text = LireLigneIni(cIniFile,"section","clef")

  8. #8
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Hum ok désolé mais je ne sait pas du tout le code
    moi j'ai fait avec le code ci-dessus pour avoir les infos dans mon fichier .ini
    je penser que avec ce code on pouvait lire les lignes du fichier

    j'ai fait plus de 20 pages sur Google pour chercher le code mais impossible de mettre la main dessus

    en Declare Function j'ai ca 3 lignes

    GetPrivateProfileString
    WritePrivateProfileString
    Get_Private_Profile_String

    En gros je sait que écrire dans un fichier .ini

    Merci quand meme

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par kazylax Voir le message
    j'ai fait plus de 20 pages sur Google pour chercher le code mais impossible de mettre la main dessus
    Tu fais exprès où c'est mon code dont tu ne veux pas ? tient, je te le met même en VB.NET, avec tu peut lire une ligne dans un fichier .ini ... exactement ce que tu veux ...
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    <DllImport("kernel32.dll")> _
     
    Shared Function GetPrivateProfileString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As StringBuilder, ByVal nSize As UInteger, ByVal lpFileName As String) As UInteger
     
    End Function
     
     
     
    Public Function LireLigneIni(ByVal fichier As String, ByVal entrée As String, ByVal clef As String) As String
     
      Dim bi As New StringBuilder(16)
     
      Dim size As UInteger = 0
     
      While True
     
        size = GetPrivateProfileString(entrée, clef, "", bi, (DirectCast(bi.Capacity, UInteger)), fichier)
     
        If size = bi.Capacity - 1 Then
     
          bi.Capacity *= 2
     
        Else
     
          Return bi.ToString()
     
        End If
     
      End While
     
    End Function
     
     
     
    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
     
      MessageBox.Show(LireLigneIni("D:\TestIni.ini", "Test", "Lol"))
     
    End Sub

  10. #10
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    désolé j'avais pas vu le second post on na du le faire en meme temps hier soir

    pour le code ca me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Erreur    1    Type 'StringBuilder' non défini.
     
    Dim bi As New StringBuilder(16)
     
    Shared Function GetPrivateProfileString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As StringBuilder, ByVal nSize As UInteger, ByVal lpFileName As String) As UInteger
     
        End Function
    Merci pour ton aide

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Rajoute au début de ton fichier de code

  12. #12
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Salut,

    Oui je l'avais deja rajouter mais ya une fonction qui ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Public Function LireLigneIni(ByVal fichier As String, ByVal entrée As String, ByVal clef As String) As String
            Dim bi As New StringBuilder(16)
            Dim size As UInteger = 0
            While True
                size = GetPrivateProfileString(entrée, clef, "", bi, (DirectCast(bi.Capacity, UInteger)), fichier)
                If size = bi.Capacity - 1 Then
                    bi.Capacity *= 2
                Else
                    Return bi.ToString()
                End If
            End While
        End Function
    Erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur    1    Une valeur de type 'Integer' ne peut pas être convertie en UInteger
    je cherche depuis ce matin en esperant trouver la solution.

    Merci

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Essayes peut être de remplacer DirectCast par CType



    (décidément VB c'est nul, il pleure même pour convertir un int en uint ... )

  14. #14
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    lol c'est peut etre nul mais je connais que ca c'est deja assez dur pour moi lol

    sinon c'est pareil (Enfin presque)

    Avertissement 1 La fonction 'LireLigneIni' ne retourne pas une valeur pour tous les chemins de code. Une exception de référence null peut se produire au moment de l'exécution lorsque le résultat est utilisé.

    il me souligne le End Function en vert du code que j'ai donner ci-dessus
    tres bizarre...

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ce n'est pas bizarre, c'est simplement que le compilateur n'a pas remarqué que la seule manière de sortir de la boucle c'est par le Return. Rajoute alors après le End While :
    Mais bon, ce code ne sera jamais appelé.

    Sinon, ça marche ?

  16. #16
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    non
    Message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur    2    'Null' n'est pas déclaré. La constante 'Null' n'est plus prise en charge ; utilisez 'System.DBNull' à la place.
    j'ai fait System.DBNull aussi mais c'est pareil

  17. #17
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    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
     
        Public Function LireLigneIni(ByVal fichier As String, ByVal entrée As String, ByVal clef As String) As String
            Dim bi As New StringBuilder(16)
            Dim size As UInteger = 0
            Dim Null As String = ""
            While True
                size = GetPrivateProfileString(entrée, clef, "", bi, (CType(bi.Capacity, UInteger)), fichier)
                If size = bi.Capacity - 1 Then
                    bi.Capacity *= 2
                Else
                    Return bi.ToString()
                End If
            End While
            Return Null
        End Function
    voila le code avec la déclaration c'est bien ca ?
    Dim Null As String = ""

    comme ca ya aucune erreur mais les infos vont pas dans mon textbox pourtant j'ai mis ca dans le Form_Load

    MaskedTextBox1.Text = LireLigneIni("CONFIG", "chemin", "config\infos.ini")
    ou
    MaskedTextBox1.Text = (LireLigneIni("config\infos.ini", "CONFIG", "chemin"))

  18. #18
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par kazylax Voir le message
    voila le code avec la déclaration c'est bien ca ?
    Dim Null As String = ""
    Me*de, en vb c'est pas null c'est Nothing ...

    Citation Envoyé par kazylax
    comme ca ya aucune erreur mais les infos vont pas dans mon textbox pourtant j'ai mis ca dans le Form_Load

    MaskedTextBox1.Text = LireLigneIni("CONFIG", "chemin", "config\infos.ini")
    ou
    MaskedTextBox1.Text = (LireLigneIni("config\infos.ini", "CONFIG", "chemin"))
    Ce serai plus MaskedTextBox1.Text = LireLigneIni("config\infos.ini", "CONFIG","chemin")

    Par contre, fait voir ton fichier .ini stp

  19. #19
    Membre régulier Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Points : 121
    Points
    121
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [CONFIG]
    chemin=D:\Mes_Jeux\Wolfenstein
     
    [SERVEUR]
    ip=127.0.0.1
    port=27960
    mod=Etpub
    ip2=127.0.0.1
    port2=27970
    mod2=Noquarter
    Voila mon fichier

  20. #20
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
        Public Function LireLigneIni(ByVal fichier As String, ByVal entrée As String, ByVal clef As String) As String
     
            Dim bi As New StringBuilder(16)
     
            Dim size As UInteger = 0
     
            While True
     
                size = GetPrivateProfileString(entrée, clef, "", bi, (CType(bi.Capacity, UInteger)), fichier)
     
                If size = bi.Capacity - 1 Then
     
                    bi.Capacity *= 2
     
                Else
     
                    Return bi.ToString()
     
                End If
     
            End While
     
            Return Nothing
     
        End Function
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            MessageBox.Show(LireLigneIni("D:\TestIni.ini", "CONFIG", "chemin"))
     
        End Sub
    ............... moi avec ça j'ai bien la valeur de chemin

Discussions similaires

  1. lecture de fichier : fin de ligne
    Par Nariom dans le forum C
    Réponses: 11
    Dernier message: 08/01/2008, 17h41
  2. Problème de lecture sur fichier ini.
    Par braoru dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 15h34
  3. Lecture de fichier .ini
    Par poussinphp dans le forum C++
    Réponses: 4
    Dernier message: 09/07/2006, 17h16
  4. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  5. Lecture des fichiers INI
    Par jamfr73 dans le forum Linux
    Réponses: 2
    Dernier message: 13/04/2006, 01h03

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