Importer document txt dans checkedlistbox

[Résolu]
Signaler
Messages postés
21
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
20 janvier 2010
-
Messages postés
21
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
20 janvier 2010
-
Bonjour,

je rencontre un problème avec le checkedlistbox.
je désire qu'il soit relier à un fichier .txt à fin de récupérer des données dans celui ci.

Je m'explique: Chaque ligne du fichier texte donne un nom avec un prénom.
"Mr Dupont - Mathieu"
Je voudrais qu'il rajoute un item pour chaque ligne du fichier .txt

actuellement j'ai ceci :
CheckedListBox1.Items.Add(File.ReadAllText("C:\Essai.txt"), False)
Mais il ne récupère que la première ligne du document.


[i]Question Bonus (en lien avec la questions précédente)
Comment faire pour filtrer une chaine de caractère?
Si j'ai : "Mr Dupont - Mathieu" et que je ne veux que "Mr Dupont".
Car je voudrais qu'une fois la personne sélectionnée, je ne récupère que son nom./i

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

Je voudrais qu'il rajoute un item pour chaque ligne du fichier .txt

c'est qui IL
tu veux juste afficher chaque ligne sans ta liste, c'est bien çà?


CheckedListBox1.Items.Add(File.ReadAllText("C:\Essai.txt"), False)
Mais il ne récupère que la première ligne du document.

non tu récupères bien tout, seulement comme il y a des retours chariot tu ne vois pas le reste

et c'est normal, il faut travaille le contenu avant de l'afficher
récupérer sous forme de tableau par exemple, grâce à SPLIT sur le séparateur étant newline


aller..
mon tmp.txt contient :
Mr Dupont - Mathieu
Mme Dupont - Mathilde
Mr Durand - Paul
Mme Schiffer Claudia



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'contenu du fichier complet sous forme de tableau
        Dim saData() As String = System.IO.File.ReadAllText("C:\tmp.txt").Split(Environment.NewLine.ToCharArray)

        'pour chaque ligne
        For Each line As String In saData
            'enlève les espaces en trop ?
            line = line.Trim
            If line.Length > 0 Then
                'récupère le nom sans me prénom si on trouve bien le "-", sinon on met tout
                Dim iPos As Integer = line.IndexOf(" -")
                If iPos > 0 Then
                    CheckedListBox1.Items.Add(line.Substring(0, iPos))
                Else
                    CheckedListBox1.Items.Add(line)
                End If
            End If
        Next
    End Sub


++
[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        With CheckedListBox1
            For i As Integer = 0 To .Items.Count - 1
                If .CheckedIndices.Contains(i) Then
                    Console.WriteLine("L'indice {0} est coché, la valeur est '{1}'", i, .Items(i).ToString)
                End If
            Next
        End With
    End Sub
Messages postés
14815
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 août 2021
156
Bonjour,

Tu peux t'inspirer du snippet C# :
[url]http://www.codyx.org/snippet_lire-toutes-lignes-fichier-texte_22.aspx/url
Et ensuite utiliser AddRange à la place de Add

Mon site
Messages postés
21
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
20 janvier 2010

Merci beaucoup =)
c'est exactement ce qu'il me fallait !
une dernière question, comment savoir dans la checkedlistbox quel item est sélectionné?
en clair, je voudrais ensuite qu'en fonction de la case sélectionner l'item soit sauvegarder dans une table.
Quel est donc le code pour recuperer les items selectionnés?
Messages postés
21
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
20 janvier 2010

Merci beaucoup =)
ca m'aide beaucoup !!
j'ai pu qu'a l'adapter a mon cas.