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 :

[C#] Fonction de Chaine de caractères


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut [C#] Fonction de Chaine de caractères
    Bonjour,

    Existe t-il une fonction en C# pour comparer 2 chaines de caractères ?

    Ex :

    chaine1 : Anniversaire de Victor
    chaine2 : Victor

    et je voudrais faire que si la chaine2 est trouvé dans la chaine1, alors j'effectue un traitement, sinon rien ...

    Merci

    Slyv

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    Utilise IndexOf de String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Dim m As String = "moi avec mon chien"
            If m.IndexOf("avec") > -1 Then
                MessageBox.Show("je suis pas seul")
            End If

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Salut,

    Merci de ta réponse rapide et efficace.

    Je viens de tester au sein de mon application et cela marche parfaitement, à l'exception du premier mot ...

    si j'ai chaine1 = Anniversaire de Victor et chaine2=Anniversaire, j'ai pas de résultat qui sont retournés.

    En fait, pour t'expliquer un peu la chose, je suis en train de faire un module de recherche d'enregistrement au sein de mon dataset, donc tu tappes un mot quelconque et ça te retourne toutes les lignes qu'il retrouve.

    Donc là ça marche sur tt les mots saug les premiers

    Je suppose que c la valeur dans le if à changer ? mais j'ai mis -2 et 0 et cela n'a pas donné de résultat

    merci

    Sylvain

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,

    En C#, le code devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        String m = "moi avec mon chien";
        if (m.IndexOf("moi") > -1) 
        {
         MessageBox.Show("je suis pas seul");
        }
    (testé, ok)

  5. #5
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Attention, la casse compte ("Avec" <> "avec")

    Donc une solutions: tu passe tout en .Upper ou .Lower pour enlever la casse et tu compare de la meme maniere

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Salut,

    oui, j'ai mis tout en lower ce matin .

    Je récupère la valeur de mon dataset, je cast en string, je met ma chaine en lower. Je met en lower ma chaine contenu dans mon textbox pour la recherche, et si je tappe le premier mot de ma chaine, auncune donnée ne sont retrouvé dans le dataset.

    Je suis maintenant au boulot et je n'ai plus accès à mon application donc je regarderais ce soir, regarder dans la MSDN les caractéristiques de la fonction IndexOF, car je ne sais pas ce qu'elle fait exactement donc c dur pour effectuer le débuggage

    Je te tiendrais au courant de mon évolution

    bonne journée

    slyv

  7. #7
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Rechercher pour filtrer? il y a plus simple que comparer les chaines:
    http://www.akadia.com/services/dotnet_find_methods.html

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Sinon autre astuce qui marche aussi très bien meme si c'est un peu plus lourd qUE le indexOf ou le Contains.C'est d'utiliser la méthode Find du controle RichTextBox.Elle te permet entre autres de faire une recherche en Mot entier,respect de la casse etc ...
    Pour cela tu rajoute juste une RichTextBox que tu caches dans ta feuille et tu copies a chaque fois le contenu de ta DataRow dans la RichTextBox et pis tu fais un Find
    C'est un peu lourd mais ca marche trèsbien aussi.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonsoir,

    Je suis rentré chez moi et j'ai fait des tests de débugage pour voir ce qui n'allait pas, et donc en recherchant le mot situé au début de ma chaine, cela ne marchait pas car je devais mettre un espace en premier dans ma textbox ... (je sais pas pourquoi j'aurais mis un espace, mais le matin ... on ne fait pas toujours ce qu'on croit faire )

    donc j'ai rajouté un Trim à ma variable qui contient le mot clé de ma recherche. (string strRecherche=txtMotCle.Text.ToLower().Trim())
    pour dans tous les cas supprimer les espaces dans ma chaine ...

    Merci à tous pour votre aide et bonnes fêtes de fin d'année.

    Slyv

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

Discussions similaires

  1. fonction gets() : chaine de caractères
    Par hannibal007 dans le forum Débuter
    Réponses: 7
    Dernier message: 04/12/2012, 13h35
  2. Réponses: 3
    Dernier message: 06/01/2011, 19h02
  3. MDX fonction sur chaine de caractères (concat(),Substring())
    Par YagamiRaito dans le forum Mondrian
    Réponses: 2
    Dernier message: 16/08/2007, 17h16
  4. Fonction sur chaine de caractère (ASCII)
    Par Medmidou dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/05/2007, 01h40
  5. Réponses: 10
    Dernier message: 17/12/2003, 13h51

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