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

C# Discussion :

Test de caractère espace


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut Test de caractère espace
    Bonjour, question simple pour vous mais pas évidant pour moi comment tester dans une textbox les caractère "espace"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (textbox.text == " ")
    {traitement}
    je suis OK.

    Mais si l'utilisateur entre plusieurs espace cela ne fonctionne plus. C'est pourquoi je voudrai savoir si mon texte est bien remplie avec des caractères et non une suite d'espace.

    Merci.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Tu as une méthode Contains sur une chaine de caractères :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Si mon texte contient au moins un espace alors je fais le traitement
    if (textbox.Text.Contains(" "))
    {traitement}

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par binoo Voir le message
    Salut,

    Tu as une méthode Contains sur une chaine de caractères :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Si mon texte contient au moins un espace alors je fais le traitement
    if (textbox.Text.Contains(" "))
    {traitement}
    Merci pour la réponse rapide mais je pense pas que cela marche car mon text box peut contenir des info sous la forme nom prénom donc au moins un espace entre les deux.

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Reste à savoir quel est ton besoin exact alors, car je ne l'ai pas vraiment compris.

    Sinon pour info, la syntaxe d'une chaîne de caractères peut aussi être vérifier à partir d'une Regex (expression régulière) :
    http://lgmorand.developpez.com/dotnet/regex/

  5. #5
    Membre régulier

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Que veux tu faire au juste?
    Simplement tester si des espaces sont présents? Ou effectuer un traitement sur ses espaces?
    Si tu veux effectuer des traitements uniquement sur les espaces de fin de chaine, tu peux utiliser la méthode Trim()
    Au contraire si tu veux traiter tous les espaces, tu peux utiliser la méthode ReplaceAll()
    Ces deux méthodes s'utilisent bien entendu sur des string

  6. #6
    Membre éprouvé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Points : 1 215
    Points
    1 215
    Par défaut
    Comme l'a dit Ginetteguy, tu devrait utiliser Trim()

    Si tu n'a aucun caractere, et qu'une suite d'espace, ca te donnera une chaine vide, sinon, ca enlevera les espaces avant et apres tes caractères.

    Donc il te suffit de tester if(textBox1.Text.Trim() == "")

  7. #7
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    En réalité, Trim retire les caractères au début et à la fin de la chaîne. TrimStart et TrimEnd s'occupent respectivement de n'en enlever qu'au début et à la fin. Ceci devrait faire l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (String.IsNullOrEmpty(textbox.Text.Trim(' ')))

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    en gros mon but et de tester sur une entré textbox si le texte contient bien des caractère et non une suite d'espace.

    En gros dans mon text box l'user doit entré nom et prénom sous se format.

    "nom prénom" je peux donc pas enlever tout les espaces vu que j'en ai besoin.
    seulement rien n'empèche l'utilisateur d'entré se genre de string: " " (soit plusieurs espace) et je veux pouvoir empécher sa, en signalant a l'user via un messagebox que son nom et prénom est mal saisi.

    Je sais pas si j'ai été clair tout et il merci pour les réponse.

  9. #9
    Membre habitué Avatar de swif79
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 169
    Points
    169
    Par défaut
    Bonjour Himotep,
    si tu veux vraiment juste vérifier que le "format" du teste saisie correspond à
    "nom prenom", les regex sont bien appropriées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Regex reg = new Regex(@"^\w+ \w+$");
    if (!reg.IsMatch("pablo almodovar"))
          MessageBox.Show("Saisie incorrect !");
    A noter que là tu accepte aussi les nombres donc pablo5 almodovar passe,
    si tu ne veux accepter que les lettres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Regex reg = new Regex(@"^[A-Za-z]+ [A-Za-z]+$");
    if (!reg.IsMatch("pablo almodovar"))
          MessageBox.Show("Saisie incorrect !");

  10. #10
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par Himotep Voir le message
    et merci pour les réponses.
    Les réponses ont déjà été donnée par cs_ntd et DonQuiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (String.IsNullOrEmpty(textbox.Text.Trim()))
    {
        ...
    }
    Pour la solution avec les expressions régulières, entre les prénoms ou noms composés, les particules..., il manque pas mal de choses

  11. #11
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    String.IsNullOrWhiteSpace(myString) en .Net 4

  12. #12
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Je ne connaissais pas ^^

  13. #13
    Membre habitué Avatar de swif79
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Les réponses ont déjà été donnée par cs_ntd
    Autant pour moi .
    Citation Envoyé par StormimOn Voir le message
    Pour la solution avec les expressions régulières, entre les prénoms ou noms composés, les particules..., il manque pas mal de choses
    Pour la regex ça serai peut être mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Regex reg = new Regex(@"^[A-Za-z]{0,} ?[A-Za-z]{0,}-?[A-Za-z]+ [A-Za-z]+-?[A-Za-z]{0,}$");

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    En réalité, Trim retire les caractères au début et à la fin de la chaîne. TrimStart et TrimEnd s'occupent respectivement de n'en enlever qu'au début et à la fin. Ceci devrait faire l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (String.IsNullOrEmpty(textbox.Text.Trim(' ')))
    Ceci a l'air de fonctionner merci pour toute vos réponse.

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

Discussions similaires

  1. Problemes avec les caractères 'espace' !
    Par gui38 dans le forum Langage
    Réponses: 12
    Dernier message: 08/01/2007, 13h40
  2. do while + test de caractère
    Par v4np13 dans le forum C
    Réponses: 5
    Dernier message: 23/11/2006, 19h31
  3. Boucle sur fichiers et le caractère espace
    Par domiq44 dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 11/10/2006, 16h53
  4. Représentation du caractère espace
    Par elm dans le forum C
    Réponses: 5
    Dernier message: 20/12/2005, 13h24
  5. caractère espace dans un lien ?
    Par kayser dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2004, 09h52

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