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 :

Détecter les mêmes éléments dans un textbox.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 8
    Par défaut Détecter les mêmes éléments dans un textbox.
    Bonjour,
    Je créer un petit programme sur visual studio.(Je suis débutant )
    Le but du programme c'est en appuyant sur le bouton, il doit détecter les mots dans la textbox et l'afficher sur la Listbox. Mais il ne doit pas afficher 2x le même mots.(example: Si j'ecris 3x "test" dans le textbox le programme doit savoir qu'il y a plusieurs 3x "test" dans le textbox et l'affiche qu'une seul fois dans la Listbox.). J'aimerai bien votre aide sur ce dernier.

    Merci de votre réponse.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par HollowSpirit Voir le message
    [...]il doit détecter les mots dans la textbox et l'afficher sur la Listbox. Mais il ne doit pas afficher 2x le même mots.[...]
    Je ne sais pas où tu es en difficulté donc je vais commencer par le début : renseigne toi sur String.Split.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 8
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Je ne sais pas où tu es en difficulté donc je vais commencer par le début : renseigne toi sur String.Split.
    Le problème c'est que je n'arrive pas faire en sorte que il doit détecter qu'il y a 2 fois le même mots dans le textbox et le faire écrire qu'une seul fois dans le listbox.

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Il faut faire en deux étapes.

    1/ Split
    2/ Dédoublonnage

    Si l'ordre des "mots" n'a pas d'importance dans la listbox, le dédoublonnage peut commencer par un tri : ainsi il est très aisé de sauter les occurrence du même mot lors de l'affichage, ça simplifie pas mal les choses.

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Voici quelques méthodes "à la va vite".
    Code csharp : 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
     
    namespace TestUnique
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Veuillez entrer une liste de mots séparés par des espaces :");
                string phrase = Console.ReadLine();
     
                string[] mots = phrase.Split(' ');
     
                Console.WriteLine("Liste des mots (avec doublons) :");
                foreach (string mot in mots)
                {
                    Console.WriteLine("- {0}", mot);
                }
     
                Console.WriteLine("Liste des mots uniques (méthode du tri) :");
                string[] copie = (string[])mots.Clone();
                Array.Sort(copie);
                string precedent = string.Empty;
                foreach (string mot in copie)
                {
                    if (mot != precedent)
                    {
                        precedent = mot;
                        Console.WriteLine("- {0}", mot);
                    }
                }
     
                Console.WriteLine("Liste des mots uniques (méthode \"naturelle\") :");
                for (int i = 0; i < mots.Length; ++i)
                {
                    bool doublon = false;
                    for (int j = 0; j < i; ++j)
                    {
                        if (mots[j] == mots[i])
                        {
                            doublon = true;
                        }
                    }
     
                    if (!doublon)
                    {
                        Console.WriteLine("- {0}", mots[i]);
                    }
                }
     
                Console.WriteLine("Liste des mots uniques en passant par un dictionnaire :");
                Dictionary<string, string> dico = new Dictionary<string, string>();
                foreach (string mot in mots)
                {
                    try
                    {
                        dico.Add(mot, mot);
                    }
                    catch {}
                }
                foreach (KeyValuePair<string, string> mot in dico)
                {
                    Console.WriteLine("- {0}", mot.Key);
                }
     
                Console.WriteLine("Liste des mots uniques par recopie :");
                List<string> copie2 = new List<string>();
                foreach (string mot in mots)
                {
                    if (!copie2.Contains(mot))
                    {
                        copie2.Add(mot);
                    }
                }
                foreach (string mot in copie2)
                {
                    Console.WriteLine("- {0}", mot);
                }
     
                Console.WriteLine("Liste des mots uniques en utilisant Linq :");
                copie = mots.Distinct().ToArray();
                foreach (string mot in copie)
                {
                    Console.WriteLine("- {0}", mot);
                }
     
                Console.WriteLine("Il y a plein d'autres solutions possibles");
                Console.ReadKey(true);
            }
        }
    }

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    mouais, enfin de nos jours on écrit pas une tartine de code pour un truc aussi simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listbox1.items.AddRange(me.Textbox1.Text.Split(" "c).distinct.toarray)
    [edit]
    je viens de voir que tu proposais linq en fin de code
    enfin j'ai aussi pu voir que tu proposais un try catch avec un add sur un dictionary au lieu d'un containskey ... un peu aberrant ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Avoir les mêmes éléments dans 2 conteneurs
    Par antoine2210 dans le forum C#
    Réponses: 2
    Dernier message: 29/12/2013, 15h53
  2. Réponses: 3
    Dernier message: 07/08/2009, 11h59
  3. Supprimer les balises HTML dans un TextBox
    Par calagan99 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 04/07/2007, 16h38
  4. Réponses: 26
    Dernier message: 20/06/2006, 14h56

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