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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    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
    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 Expert 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
    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 expérimenté
    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
    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 émérite

    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
    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 expérimenté
    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
    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 Expert 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
    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é

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/11/2013, 00h37
  2. Split complexe sur fichier texte
    Par Mocodo dans le forum VBScript
    Réponses: 1
    Dernier message: 31/03/2010, 13h28
  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: 02/02/2010, 23h13
  4. Réponses: 2
    Dernier message: 07/07/2008, 18h24
  5. Réponses: 7
    Dernier message: 23/03/2005, 22h23

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