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 :

Affichage tri dans Listbox avec VB2010 [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Points : 30
    Points
    30
    Par défaut Affichage tri dans Listbox avec VB2010
    Bonjour,

    Je souhaiterais savoir comment n'afficher dans un listbox que certains fichiers présent dans un dossier et ne contenant que certains caractères.
    En détail, je sélectionne dans un combobox un mot, j'en prend que les 3 premières lettres et j'aimerai appliquer à ma listbox deux filtres, que seul les pdf soient affichés (la j'y arrive), mais aussi que seul les fichiers dont le nom commence par les trois lettres résultant du choix de la combobox ne s'affiche dans le listbox. Cette dernière étape reste une énigme pour moi ...

    Merci pour vos réponses.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Les classes Directory et DirectoryInfo ont tout ce qu'il faut pour filtrer les noms de fichiers.

    Tu ajoutes au ListBox, les seuls noms filtrés.

    Au besoin tu ajoutes ton propre code à ta question, et tu le mets en forme:

    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
    Imports System.IO
     
    Module Module1
     
        Sub Main()
            Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
            Console.WriteLine("No search pattern returns:")
            For Each fi In di.GetFiles()
                Console.WriteLine(fi.Name)
            Next
     
            Console.WriteLine()
     
            Console.WriteLine("Search pattern *2* returns:")
            For Each fi In di.GetFiles("*2*")
                Console.WriteLine(fi.Name)
            Next
     
            Console.WriteLine()
     
            Console.WriteLine("Search pattern test?.txt returns:")
            For Each fi In di.GetFiles("test?.txt")
                Console.WriteLine(fi.Name)
            Next
     
            Console.WriteLine()
     
            Console.WriteLine("Search pattern AllDirectories returns:")
            For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
                Console.WriteLine(fi.Name)
            Next
        End Sub
     
    End Module
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Points : 30
    Points
    30
    Par défaut
    Merci pour la réponse mais j'ai du mal à la comprendre ...

    Voici mon bout de code :

    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
      Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim folderInfo As New IO.DirectoryInfo("C:\SCANNER") 'Or whatever dir path 
            Dim arrFilesInFolder() As IO.FileInfo
            Dim fileInFolder As IO.FileInfo
            arrFilesInFolder = folderInfo.GetFiles("*.pdf")
            For Each fileInFolder In arrFilesInFolder
                ListBox1.Items.Add(fileInFolder.Name)  ' affiche dans le listbox tout les fichiers pdf du répertoire au chargement de la feuille
            Next
            ComboBox1.Items.Add("Voirie")
            ComboBox1.Items.Add("Espace Vert")
            ComboBox1.Items.Add("Réseaux")
     
     
        End Sub
     
     
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
            Dim a As String = ComboBox1.Text
            Dim trouve As Boolean
     
            trouve = ListBox1.Items.Contains(a.Substring(0, 3)) 'sélectionne les 3 premiers carractères de l'item séctionné dans le combobox
            MessageBox.Show(a.Substring(0, 3)) 'Affiche les trois premiers carractères
            MessageBox.Show(trouve) 'Affiche si le résultat du filtre est ok
     
        End Sub

    Mon souhait, serait lors de la sélection dans le combobox de ne remplir la listbox qu'avec les fichiers ne commençant que les trois premières lettre correspondant à la variable a...

    Merci de votre aide.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    dans le principe, quand tu dois faire un filtre sur listbox, tu le vides et tu le reremplies avec la nouvelle liste filtrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    listbox1.items.clear
    listbox1.items.addrange(nouvelleliste.toarray)
    soit tu as une liste de chose à l'origine dans une collection, et tu génères une nouvelle collection filtrée à partir de cette liste
    soit tu créé ta liste en recherchant quelque chose (fichiers, base de données) en fonction de critères, et c'est à ce moment là que tu créés ta collection qui sera affichée
    mais il faut bien vider le listbox et le reremplir, il ne peut pas de lui même supprimer des choses selon un critère, et il n'est pas forcément judicieux de supprimer dedans tout ce qui ne sert pas

    c'est ce principe là qu'il te manquait ou tu ne sais pas comment avoir ta liste filtrée ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par merymad69 Voir le message
    Merci pour la réponse mais j'ai du mal à la comprendre ...

    Voici mon bout de code :

    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
      Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim folderInfo As New IO.DirectoryInfo("C:\SCANNER") 'Or whatever dir path 
            Dim arrFilesInFolder() As IO.FileInfo
            Dim fileInFolder As IO.FileInfo
            arrFilesInFolder = folderInfo.GetFiles("*.pdf")
            For Each fileInFolder In arrFilesInFolder
                ListBox1.Items.Add(fileInFolder.Name)  ' affiche dans le listbox tout les fichiers pdf du répertoire au chargement de la feuille
            Next
            ComboBox1.Items.Add("Voirie")
            ComboBox1.Items.Add("Espace Vert")
            ComboBox1.Items.Add("Réseaux")
     
     
        End Sub
     
     
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
            Dim a As String = ComboBox1.Text
            Dim trouve As Boolean
     
            trouve = ListBox1.Items.Contains(a.Substring(0, 3)) 'sélectionne les 3 premiers carractères de l'item séctionné dans le combobox
            MessageBox.Show(a.Substring(0, 3)) 'Affiche les trois premiers carractères
            MessageBox.Show(trouve) 'Affiche si le résultat du filtre est ok
     
        End Sub

    Mon souhait, serait lors de la sélection dans le combobox de ne remplir la listbox qu'avec les fichiers ne commençant que les trois premières lettre correspondant à la variable a...

    Merci de votre aide.
    Bonjour,
    J'ai trouvé ...

    Voici la modif dans mon code :

    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
     
     
     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
            Dim a As String = ComboBox1.Text
            Dim b As String
            Dim c As String
            b = a.Substring(0, 3)
            c = b & "*.pdf"
     
            ListBox1.Items.Clear()
            Dim folderInfo As New IO.DirectoryInfo("C:\SCANNER") 'Or whatever dir path 
            Dim arrFilesInFolder() As IO.FileInfo
            Dim fileInFolder As IO.FileInfo
            arrFilesInFolder = folderInfo.GetFiles(c)
            For Each fileInFolder In arrFilesInFolder
                ListBox1.Items.Add(fileInFolder.Name)
            Next
     
        End Sub[

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

Discussions similaires

  1. Affichage image dans listbox
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 28/12/2010, 09h18
  2. Ajouter Items dans listbox avec selectedvalue
    Par abyssetique dans le forum C#
    Réponses: 6
    Dernier message: 21/09/2010, 18h11
  3. Tri dans listbox
    Par Basicnav dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/11/2009, 15h20
  4. Tri Alphabétique Listbox avec Boutons Radios
    Par ljuboja78 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/05/2008, 09h55
  5. Erreur de syntaxe clause FROM affichage Tous dans Listbox
    Par Lou Pitchoun dans le forum Access
    Réponses: 9
    Dernier message: 21/09/2005, 10h40

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