Controle sur un string

Résolu
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013 - 19 oct. 2006 à 12:00
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013 - 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

17 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 oct. 2006 à 15:01
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;
}
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 oct. 2006 à 16:00
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' )".
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
19 oct. 2006 à 12:06
Si je comprends bien, tu veux simplement vérifier la saisie d'un numéro dans une Textbox ?

Mx
MVP C# 
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 oct. 2006 à 12:07
Une MaskedTextBox peut-être ?

<hr size="2" />-Blog-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
19 oct. 2006 à 12:08
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!!!
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 oct. 2006 à 12:25
une expression régulière :)

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

Mx
MVP C# 
0
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
19 oct. 2006 à 14:40
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!!!
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 oct. 2006 à 14:42
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 );
0
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
19 oct. 2006 à 15:21
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???
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 oct. 2006 à 15:36
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#]
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 oct. 2006 à 15:43
10 euros à celui qui fait mieux

<hr size="2" />-Blog-
0
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
19 oct. 2006 à 16:25
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
0
Rejoignez-nous