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 :

Split sur fichier texte pour alimenter une combobox [Débutant]


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut Split sur fichier texte pour alimenter une combobox
    Bonjour à tous,

    Voila j'ai un souci et je ne trouve pas sur le net.

    J'ai une combobox alimentée par un fichier texte grâce à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComboBox1.Items.AddRange((System.IO.File.ReadAllLines("h:\test.txt", System.Text.Encoding.Default)))
    Voici le contenu du fichier texte (test.txt):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PARIS    @IP1    @IP2      @IP3    @IP4
    BORDEAUX    @IP1    @IP2      @IP3    @IP4
    NANTES    @IP1    @IP2      @IP3    @IP4
    Le souci c'est que je veux voir apparaître dans ma liste déroulante que le premier mot (la ville) et non les autres valeurs.
    Comment puis-je faire? un split?

  2. #2
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Bonjour,

    L'idée du Split est une bonne idée
    quel est le séparateur de ton fichier? TAB?

    voici un exemple de split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Ligne as string = "Yann;Antoine;Eric"
    Dim Separateur as Char = ";"
    Dim Nom() as String
    Nom = Ligne.Split(Separateur)
    Ce qui te donne:
    • Nom(0) = Yann
    • Nom(1) = Antoine
    • Nom(2) = Eric


    Enjoy

  3. #3
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    Merci pour la réponse rapide.

    ok je vois le fonctionnement du split je pense que c'est ce que je vais utiliser.
    Le séparateur sera un simple espace.

    En revanche je ne vois pas comment adapter mon split au fichier texte, ni comment l'intégrer à mon combobox.

    Si vous avez des idées directrices à m'expliquer, je suis preneur...

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    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
    Private Sub GetFirstWord(ByVal path As String)
            Dim lists As New List(Of String)
            Dim parts() As String
            ComboBox1.Items.Clear()
            Try
                lists = System.IO.File.ReadAllLines(path, System.Text.Encoding.Default).ToList
                For Each items As String In lists
                    parts = items.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
                    ComboBox1.Items.Add(parts(0))
                Next
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
     
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     GetFirstWord("h:\test.txt")
    end sub

  5. #5
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    Bonjour,

    Merci pour la réponse.

    En revanche j'ai un souci avec cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lists = System.IO.File.ReadAllLines(path, System.Text.Encoding.Default).ToList
    Cela me dit : 'Tolist' n'est pas un membre de 'System.Array'

    Du coup je ne peux pas compiler...

    Sinon j'ai essayé de comprendre le code j'avoue que j'ai un peu de mal à tout comprendre.Est-il possible que vous commentiez afin d'éclairer un pauvre débutant....

  6. #6
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Bonjour,

    tu a essayé de faire sans le ".ToList" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lists = System.IO.File.ReadAllLines(path, System.Text.Encoding.Default)
    Je dirais qu'il a voulu te dire ceci
    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
        Private Sub GetFirstWord(ByVal path As String)
     
            ' Déclaration des variables
            Dim lists As New List(Of String) 'Liste de String qui va contenir ton fichier texte
            Dim parts() As String ' Parts = Parties des ta ligne (ou éléments), c-a-d "PARIS","@IP1","@IP2","@IP3","@IP4"
     
            ' Reset de la Combo
            ComboBox1.Items.Clear()
     
            ' Traitement
            Try    ' Try permet de gérer les exceptions (en cas d'erreurs, ça les prend en compte et ça évite de planter ton appli)
                lists = System.IO.File.ReadAllLines(path, System.Text.Encoding.Default) ' Met toutes les lignes de ton fichier texte dans une liste de string ( 1 ligne = 1 string)
                For Each items As String In lists   ' Pour chaque éléments (ou ligne contenu dansa ta liste
                    parts = items.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries) ' Tu Split
                    ComboBox1.Items.Add(parts(0)) ' Et tu ne garde que le première élément qui contient le nom de ta ville
                Next
            Catch ex As Exception
                ' En cas d’erreurs dans le code ci dessus, tu capture l’exception"ex" et tu l'affiche
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    Voila j'ai était un peu lourd dans les commentaires,
    mais je pense effectivement que ce code a besoin de commentaires, *moins détaillés*
    a toi de mettre ce qui te parait le plus adapté

  7. #7
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    Merci beaucoup!

    En revanche avec cette ligne (sans le '.ToList') :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lists = System.IO.File.ReadAllLines(path, System.Text.Encoding.Default)
    j'ai une nouvelle erreur :
    Impossible de convertir une valeur de type 'Tableau à 1 dimension(s) de String' en 'System.Collections.Generic.List(Of String)'.

    J'avoue que cette phrase me dépasse...

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    envois le code que tu as écrit

  9. #9
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    Ah en étudiant le message d'erreur je me suis dit qu'il voulait convertir un tableau en string, alors le plus simplement du monde j'ai fait ceci :

    a la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim lists As New List(Of String)
    j'ai mis :

    et miracle, ça fonctionne...

    Merci beaucoup!!!
    Mais j'aurai surement d'autres questions plus tard.
    Encore un grand merci!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/11/2013, 01h37
  2. Split complexe sur fichier texte
    Par Mocodo dans le forum VBScript
    Réponses: 1
    Dernier message: 31/03/2010, 14h28
  3. [XL-2003] double cliquer sur une zone de liste pour remplir une combobox
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/02/2010, 00h13
  4. Réponses: 2
    Dernier message: 07/07/2008, 19h24
  5. Réponses: 7
    Dernier message: 23/03/2005, 23h23

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