Controle sur un string [Résolu]

Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 12:00 - Dernière réponse : Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention
- 19 oct. 2006 à 16:25
Bonjour tout le monde,

je voudrais savoir si quelqu'un saurait comment faire pour faire un contrôle sur une chaine de caractère. Je m'explique plus en détail : j'ai un programme qui crée des fiches clients pour une bibliothèque. Donc quand je dois créer une fiche pour une personne ou modifier une fiche, j'aimerais faire un contrôle sur le numéro de téléphone à la saisie, pour ne pas avoir + de 10 caractères.

J'espère que j'ai été clair dans mes explications et que vous pourrez m'aider à résoudre mon problème

Merci encore à tous ceux qui m'aideront!!!!

Bonne journée
Afficher la suite 

17 réponses

Répondre au sujet
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 19 oct. 2006 à 15:01
+3
Utile
C'est plus complet comme ça ^^

static void Main( string[ ] args )
{
    string text = String.Empty;


    do
    {
        Console.WriteLine( "Numéro de tel ( 10 chiffres ) : " );
        text = Console.ReadLine( );


    } while ( !IsValid( text ) );
}


private static bool IsValid( string text )
{
    if ( text.Length != 10 )
        return false;


    foreach( char c in text )
    {
        if ( ( int )c < 48 || ( int )c > 57 ) // IsDigit.
            return false;
    }


    return true;
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Lutinore
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 19 oct. 2006 à 16:00
+3
Utile
Les expressions régulières c'est bien si on connait.. Puis derrière IsMatch il se cache pas mal de code quand même.

Jojo, avec cette ligne "if ( ( int )c < 48 || ( int )c > 57 )" je teste la valeur ASCII des caractères de la chaine. On peut l'écrire comme ça : "if ( c < '0' || c > '9' )".
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Lutinore
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 19 oct. 2006 à 12:06
0
Utile
Si je comprends bien, tu veux simplement vérifier la saisie d'un numéro dans une Textbox ?

Mx
MVP C# 
Commenter la réponse de MorpionMx
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 19 oct. 2006 à 12:07
0
Utile
Une MaskedTextBox peut-être ?

<hr size="2" />-Blog-
Commenter la réponse de cs_Bidou
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 12:08
0
Utile
Non, non pardon, j'ai oublié de précisé que c'était en mode console. Et en fait, je voudrais juste que quand je rentre le téléphone je ne puisse saisir que 10 caractères au maximum quoi!!

Merci encore!!!
Commenter la réponse de Jojo092
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 oct. 2006 à 12:25
0
Utile
une expression régulière :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 14:05
0
Utile
Heuu, est ce que par hasard, tu pourrais être plus explicit s'il te plait, parce que là je vois pas du tout, désolé...
Commenter la réponse de Jojo092
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 oct. 2006 à 14:08
0
Utile
bah... le but des expressions régulière, c'est de valider le format d'une chaine de caractères.
Donc si tu veux valider une string... utilise une regex.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 14:19
0
Utile
Ha d'accord, je connais pas du tout. Je vais voir ce que ca donne!!!! Merci
Commenter la réponse de Jojo092
MoDDiB 546 Messages postés mardi 26 novembre 2002Date d'inscription 4 mai 2007 Dernière intervention - 19 oct. 2006 à 14:26
0
Utile
Pour ne pas avoir plus de 10 charatères dans une textbox attribut simplement la valeur 10 à l'attribut MaxLength.
Commenter la réponse de MoDDiB
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 19 oct. 2006 à 14:33
0
Utile
MoDDiB -> Il a précisé qu'il etait en mode console dans son 2eme message ;)

Mx
MVP C# 
Commenter la réponse de MorpionMx
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 14:40
0
Utile
Non, je ne peux pas, je n'utilise pas d'évènements, je suis en mode console... Je sais, c'est pas agréable comme truc, mais c'est dans le cadre de projets en BTS!!!
Commenter la réponse de Jojo092
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 19 oct. 2006 à 14:42
0
Utile
Salut,

Tu as dit "à la saisie"..

string text = String.Empty;


do
{
    Console.WriteLine( "Numéro de tel ( 10 chiffres ) : " );
    text = Console.ReadLine( );


} while ( text.Length != 10 );
Commenter la réponse de Lutinore
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 15:21
0
Utile
je veux bien moi, mais pourrait-tu m'apporter plus de précision sur ton code, en particulier sur la ligne suivante :




if ( ( int )c < 48 || ( int )c > 57 ) // IsDigit.




et savoir aussi pourquoi tout retourne faux???
Commenter la réponse de Jojo092
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 oct. 2006 à 15:36
0
Utile
je persiste... mais je préfère :

Regex.IsMatch( numeroTelephone, @"\d{10}")

--> true, si le numéro est bon,
--> false sinon.

qui dit mieux ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 19 oct. 2006 à 15:43
0
Utile
10 euros à celui qui fait mieux

<hr size="2" />-Blog-
Commenter la réponse de cs_Bidou
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 oct. 2006 à 16:25
0
Utile
ah oui, je comprends mieux. j'ai adopté ta méthode, car elle me parait plus simple pour la compréhension, sachant que je vais devoir expliquer mon code pendant ma soutenance... En tout cas, je vous remercie tous pour votre aide!!!!!

Bonne fin de journée à l'équipe de csharpfr.com
Commenter la réponse de Jojo092

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.