Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Dryken en 24 Noviembre 2012, 19:03 pm



Título: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Dryken en 24 Noviembre 2012, 19:03 pm
Buenas, vengo de C/C++ y llevo solo cosa de 2 semanas en C# y me esta gustando mucho, son todo ventajas.

Pues eso, me preguntaba como podría evitar el error de que un usuario al acceder a un menú pulse por ejemplo la letra a y se quede pillado.

Si solo acepto variables enteras...¿que forma hay de que no ocurra nada y te vuelva a pedir introducir el valor?

He probado a poner un string para que acepte cualquier valor y funciona, pero únicamente acepta un caracter por pulsación de intro. Cuando pulsas más de uno se bloquea la app.


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Keyen Night en 24 Noviembre 2012, 21:09 pm
Estas ingresando la información por consola?, o por medio de algún control por ejemplo un Textbox?


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Dryken en 25 Noviembre 2012, 11:08 am
Es por consola


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: $Edu$ en 25 Noviembre 2012, 16:20 pm
Deja tu codigo para que lo veamos.


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Dryken en 25 Noviembre 2012, 17:14 pm
El código de evitar la excepción me ha dado muchos problemas y lo quite porque no había más remedio. Os dejo el código de la calculadora para ver que manera hay de evitarlo. No lo he podido poner aquí porque son casi 1000 líneas.

http://pastebin.com/j7M3yrRn (http://pastebin.com/j7M3yrRn)

Seguramente será una tontería hallar la forma de evitar el problema pero no doy con el clavo.

Saludos!


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: spiritdead en 25 Noviembre 2012, 17:30 pm
El código de evitar la excepción me ha dado muchos problemas y lo quite porque no había más remedio. Os dejo el código de la calculadora para ver que manera hay de evitarlo. No lo he podido poner aquí porque son casi 1000 líneas.

http://pastebin.com/j7M3yrRn (http://pastebin.com/j7M3yrRn)

Seguramente será una tontería hallar la forma de evitar el problema pero no doy con el clavo.

Saludos!

hubieras copiado solamente la parte donde intentas validar lo q dices :/


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Novlucker en 26 Noviembre 2012, 13:41 pm
Tienes muy pocas opciones en tu menú, para que utilizar un long?, y no utilices Parse sino TryParse para validar el input.

Saludos


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: $Edu$ en 26 Noviembre 2012, 19:16 pm
Usa lapiz y papel antes de empezar a programar, asi te organizaras mejor, aunque luego estas cosas las haras sin pensar porque es lo basico que tienes que saber.
Busca sobre bucles Do-While, borrado de pantalla en la consola, el uso de TryParse y entenderas como hacerlo.
Lee un buen tutorial, hay unos de "el guille" que si buscas en google encontraras. Saludos!


Título: Re: ¿Cómo evitar el ingreso de caracter en variable entera?
Publicado por: Dryken en 26 Noviembre 2012, 20:21 pm
Gracias por la sugerencia compañero, me pondré a buscar antes de preguntar, cosa que debería haber hecho  :P

Busco los tutoriales y me informo a ver si soy capaz de sacarlo por mi mismo, gracias por la ayuda!

Edito

Para quién lo necesite

Código
  1. bool esValido = false;
  2.  
  3. esValido = int.TryParse (Console.ReadLine (), out numero);
  4.  
  5.    while (!esValido)
  6.                {
  7.                    Console.Write("\nError, reingrese un tipo de dato entero: ");
  8.                    esValido = int.TryParse(Console.ReadLine(), out numero);
  9.                }