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

Windows Forms Discussion :

Recherche de mots dans un texte


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut Recherche de mots dans un texte
    Bonjour

    Voilà, je souhaite réaliser une Windows application en C#, dans laquelle l'utilisateur pourrait taper un mot à rechercher dans un texte affiché. Le programme chercherait alors dans le texte le mot et s'il existe, l'affiche.
    (exactement comme la recherche que l'on peut en tapant CTRL+F )
    Quelle méthode serait-il préférable d'adopter?

    J'avais pensé stocker chaque phrase (ou ligne) du texte dans une ArrayList et ensuite faire la recherche depuis l'ArrayList mais je ne sais pas trop si c'est réalisable comme cela.

    Comment vous y prendriez-vous ?

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Février 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 312
    Points : 390
    Points
    390
    Par défaut
    ca dépend dans quoi est contenu ton texte
    moi ce que je te conseille c'est avec la méthode split d'un string, tu met dans un tableau de chaine (une arraylist est inutile ce ne sont que des chaine de caractères) tous les mots séparé par " ". ensuite tu parcours ton tableau juste à temps que tu trouve le bon ou que que tu soit arrivé a la fin du tableau.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En supposant que le texte soit affiché dans une TextBox, le plus simple serait de faire ça :
    - rechercher dans le texte l'index du texte recherché (méthode String.IndexOf)
    - Si le texte est trouvé, le sélectionner dans la textbox (propriétés SelectionStart et SelectionLength)

    Pour chercher successivement toutes les occurences du texte recherché, il faut passer un second paramètre à IndexOf pour indiquer à partir de quel point on cherche

    Ca donne quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void buttonRecherche_Click(object sender, EventArgs e)
    {
        int start = textBoxTexte.SelectionStart + textBoxTexte.SelectionLength;
        int i = textBoxTexte.Text.IndexOf(textBoxRecherche.Text, start);
        if (i >= 0) // IndexOf renvoie -1 si le texte n'est pas trouvé
        {
            textBoxTexte.SelectionStart = i;
            textBoxTexte.SelectionStart = textBoxRecherche.Text.Length;
        }
    }
    (pas testé)

  4. #4
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut
    Très bien merci pour vos réponses.
    Le texte se trouve dans un label mais je vais adapter. Je vais me baser sur cet algorithme.
    Ca va me donner l'occasion de découvrir les fonctions de String en c#
    Je reviendrai mettre "résolu" si je n'ai pas de nouvelles questions sur le sujet.

    Merci

Discussions similaires

  1. [Toutes versions] Probleme dans une regle de recherche de mots dans un texte
    Par userjf2007 dans le forum Excel
    Réponses: 3
    Dernier message: 17/01/2012, 15h47
  2. Recherche des mots dans un texte
    Par psyrio dans le forum Langage
    Réponses: 1
    Dernier message: 27/02/2009, 12h15
  3. Excel : Recherche d'un mot dans un texte
    Par Two_No dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2007, 10h02
  4. [RegEx] Recherche de mots dans un texte
    Par Dirty Harry dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2007, 17h29
  5. Rechercher un mot dans un texte
    Par BernardT dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/12/2005, 08h55

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