Controle

Résolu
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006 - 23 sept. 2005 à 11:04
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 23 sept. 2005 à 12:10
Bonjour,
je suis en ce moment en train de développer un projet en mode console pour mon diplome mais j'ai un peu de mal à faire quelque chose, je m'explique :

j'ai crée un menu ou l'utilisateur doit saisir son choix, il saisit une variable de type chaine et je convertis cette variable en entier et ensuite je fais mon controle sur le choix (voici le code)

menu();
a = Console.ReadLine();
b = int.Parse(a);
//controle de saisie pour le menu
while (b!=1 && b!=2 && b!=3 && b!=4 && b!=5 )
{
Console.WriteLine("Erreur de saisie, veuillez ressaisir");
a = Console.ReadLine();
b = int.Parse(a);
}

mon problème est le suivant, lorsque je tape dans le choix des lettres, il me fait une erreur, je devrais faire un controle pour vérifier si ce que l'utilisateur tape est un entier mais je ne sais pas comment m'y prendre....

merci d'avance
K.bitnik

5 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 sept. 2005 à 11:15
bah...
la solutions la plus simple :

menu();
a = Console.ReadLine();
Regex regex = new Regex("[1-5]");
while (!regex.IsMatch(a)) {
Console.WriteLine("Erreur de saisie, veuillez ressaisir");
a = Console.ReadLine();
}

sachant que Regex se trouve dans System.Text.RegularExpressions

Sébastien FERRAND
3
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
23 sept. 2005 à 11:41
ta méthode me semble un peu compliqué mais je pense avoir trouvé une autre solution, tiens si sa peut te servir :

while (b<1 || b>5)
{
menu();
try
{
b = int.Parse(Console.ReadLine());
if (b<1 || b>5)
{
Console.WriteLine("erreur de saisie, ressaisir");
}
}
catch
{
Console.WriteLine("Erreur de saisie, veuillez ressaisir\n");
}

jte remercie pour ton aide

Kbitnik
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 sept. 2005 à 11:52
compliquée ??? tu trouves ma solution compliquée

c'est pourtant, la plus simple et la plus rapide... je n'essaye pas de transformer une chaine de caractères en int, je ne fais qu'un test... et comme tu le voulais tant que tu ne saisis pas un chiffre entre 1 et 5, ca marche pas...

dit-moi ou c'est compliqué ?

Sébastien FERRAND
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
23 sept. 2005 à 12:01
ah ok en faite c'est parce que je ne comprenais pas ce que voulais dire regex. c'est juste un mot clé pour le test en faite ??
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 sept. 2005 à 12:10
regex... pour Expressions Régulières... la manière la plus simple et la plus solide de controler la saisie des utilisateurs

Sébastien FERRAND
0
Rejoignez-nous