Título: Validar ingreso correcto con mensaje en consola...
Publicado por: DanielPy en 12 Mayo 2013, 22:12 pm
Hola a todos. Desconozco si esto se puede hacer por eso los consulto.- do { Console.SetCursorPosition(mLeft, mTop); Console.Write("Ingrese la cantidad de números a comparar(máximo 255)...:"); } while (!byte.TryParse(Console.ReadLine(), out n));
Si se ingresa por ejemplo una letra el mismo es incorrecto, puedo en este caso mostrar un mensaje de ayuda y como?.- El código lo expongo completo porque considero que tal vez alguna cosita puede ayudarle a algún principiante como yo.- using System; using System.Collections.Generic; using System.Text;
namespace MayorMenor { class Program { static void Main(string[] args) { Console.Title = "Mostrar el mayor y el menor de un grupo de números..."; Console.SetWindowSize(70, 30); Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Yellow; Console.Clear();
byte n = 0, i = 0, mLeft = 2, mTop = 2; int numero = 0, menor = 99, mayor = -99;
do { Console.SetCursorPosition(mLeft, mTop); Console.Write("Ingrese la cantidad de números a comparar(máximo 255)...:"); } while (!byte.TryParse(Console.ReadLine(), out n));
mTop += 2;
for (; i < n; i++) {
do { Console.SetCursorPosition(mLeft, mTop); Console.Write("numero " + (i + 1) + "...:"); } while (!Int32.TryParse(Console.ReadLine(), out numero));
if (mayor < numero) { mayor = numero; }
if (menor > numero) { menor = numero; } mTop++; }
mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número menor es...: " + menor); mTop++; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número mayor es...: " + mayor);
mTop += +2; Console.SetCursorPosition(mLeft, mTop); Console.Write("Apriete una tecla para cerrar la aplicación..."); Console.ReadKey(); } } } Gracias pero muchas grtacias DarK_FirefoX Saludos. Daniel
Título: Re: Validar ingreso correcto con mensaje en consola...
Publicado por: DarK_FirefoX en 13 Mayo 2013, 16:53 pm
Mira aqui tu solución al problema. El problema es que el método TryParse, devuelve bool y sale una variable por un parámetro OUT, es simple controlar si el método te da false puedes hacer algo... pd: me volví loco con todos los Console.SerCursorPosition porque casi nunca he usado eso...ah, y recuerda usar las etiquetas CODE para poner el código. static void Main(string[] args) { Console.Title = "Mostrar el mayor y el menor de un grupo de números..."; Console.SetWindowSize(70, 30); Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Yellow; Console.Clear(); byte n = 0, i = 0, mLeft = 2, mTop = 2; int numero = 0, menor = 99, mayor = -99; //Modifiqué esto... while (true) { Console.SetCursorPosition(mLeft, mTop); Console.Write("Ingrese la cantidad de números a comparar(máximo 255)...:"); if (byte.TryParse(Console.ReadLine(), out n)) break; //Si pudo hacerle PARSE sale del ciclo while else { mTop+=2; Console.SetCursorPosition(mLeft, mTop); Console.WriteLine("TU MENSAJE DE AYUDA AQUI EJ> INGRESASTE UN NUMERO INCORRECTO"); mTop += 2; } } mTop += 2; for (; i < n; i++) { //Modifiqué esto while (true) { Console.SetCursorPosition(mLeft, mTop); Console.Write("numero " + (i + 1) + "...:"); if (Int32.TryParse(Console.ReadLine(), out numero)) break; //Si pudo hacerle PARSE sale del ciclo while else { mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.WriteLine("TU MENSAJE DE AYUDA AQUI EJ> INGRESASTE UN NUMERO INCORRECTO"); mTop += 2; } } if (mayor < numero) { mayor = numero; } if (menor > numero) { menor = numero; } mTop++; } mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número menor es...: " + menor); mTop++; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número mayor es...: " + mayor); mTop += +2; Console.SetCursorPosition(mLeft, mTop); Console.Write("Apriete una tecla para cerrar la aplicación..."); Console.ReadKey(); }
Título: Re: Validar ingreso correcto con mensaje en consola...
Publicado por: DanielPy en 13 Mayo 2013, 17:49 pm
Hola amigo. Muchas gracias, excelente solución, en cuanto a SetCursorPosition y las otras cositas yo las uso en todas mis prácticas, soy un capricorniano perfeccionista.- ...recuerda usar las etiquetas CODE para poner el código. Siempre las uso.- :huh: Bueno un gran abrazo.- Daniel.
Título: Re: Validar ingreso correcto con mensaje en consola...
Publicado por: DanielPy en 13 Mayo 2013, 19:37 pm
Hola. Funciona como lo esperado, el que posteo en este caso tiene una pequeña modificación de estética.- using System; using System.Collections.Generic; using System.Text;
namespace MayorMenor { class Program { static void Main(string[] args) { Console.Title = "Mostrar el mayor y el menor de un grupo de números..."; Console.SetWindowSize(70, 30); Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Yellow; Console.Clear();
byte n = 0, i = 0, mLeft = 2, mTop = 2; int numero = 0, menor = 99, mayor = -99;
while (true) { Console.SetCursorPosition(mLeft, mTop); Console.Write("Ingresa la cantidad de números a comparar(máximo 255)...:"); if (byte.TryParse(Console.ReadLine(), out n)) break; //Si pudo hacerle PARSE sale del ciclo while else { mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.Write("INGRESO INCORRECTO Puse una tecla para continuar..."); Console.ReadKey(); Console.SetCursorPosition(mLeft, mTop); Console.Write(" "); mTop -= 2; } }
mTop += 2; Console.SetCursorPosition(mLeft, mTop);
for (; i < n; i++) {
while (true) { Console.SetCursorPosition(mLeft, mTop); Console.Write("numero " + (i + 1) + "...:"); if (Int32.TryParse(Console.ReadLine(), out numero)) break; //Si pudo hacerle PARSE sale del ciclo while else { mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.Write("INGRESO INCORRECTO Puse una tecla para continuar..."); Console.ReadKey(); Console.SetCursorPosition(mLeft, mTop); Console.Write(" "); mTop -= 2; } } if (mayor < numero) {mayor = numero;}
if (menor > numero) {menor = numero;} mTop++; }
mTop += 2; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número menor es...: " + menor); mTop++; Console.SetCursorPosition(mLeft, mTop); Console.Write("El número mayor es...: " + mayor);
mTop += +2; Console.SetCursorPosition(mLeft, mTop); Console.Write("Pulse una tecla para cerrar la aplicación..."); Console.ReadKey(); } } } Saludos. Daniel
|