Validar ingreso de datos en C Sharp

Iniciado por DanielPy, 9 Julio 2013, 21:29 PM

0 Miembros y 1 Visitante están viendo este tema.

DanielPy

Hola a todos.
Danielito como siempre tiene algo más que aprender, el código funciona como lo deseado,solo por una cosa que no logro solucionar ya lidiando por un largo día, el ingreso no debe ser 0.-

namespace ClientesMain
{
class Validar
{
public int ValidarEntero()
{
int numero = 0;
while (true)
{
Console.SetCursorPosition(02, 04);
Console.Write("Número...............:");
if (Int32.TryParse(Console.ReadLine(), out numero))
break;
else
{
Console.SetCursorPosition(02,06);
Console.Write("Ingreso incorrecto(pulse una tecla para intentarlo nuevamente...)");
Console.ReadKey();
Console.Write("                                                                    ");
Console.SetCursorPosition(24, 04);
}
}
return numero;
}
}
}


Si le pongo if (numero > 0)   break; como es lógico funciona si se ingresa un 0 y también si se ingresa otra cosa, sólo que no puedo acceder al mensaje(en este último caso).-

Bueno es todo, espero ayuda.-
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

DanielPy

Hola a todos.
Bueno al fin lo logre solo que tengo un problema, no puedo regresar con la
tecla Backspace para borrar lo ingresado.-(en este caso el mensaje es sencillo de aplicar) .-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Title = " Validar ingreso de datos";

ConsoleKeyInfo opcion;
char key;
string aux = "";
int numero = 0;

Console.SetCursorPosition(02,02);
Console.WriteLine("Solo números y el ingreso debe ser mayor a 0");
Console.SetCursorPosition(02, 04);
do
{
opcion = Console.ReadKey(true);
key = opcion.KeyChar;
if (key > 47 && key < 58)
{
Console.Write("" + key);
aux += key;
}
if (key == 13)
{
Int32.TryParse(aux, out numero);
if (numero != 0) break;
else
Console.SetCursorPosition(02, 04);
}
} while (true);

Console.SetCursorPosition(02, 07);
Console.Write("Ingresaste...: " + numero);
Console.ReadLine();
}
}
}


Si alguien me podría dar la solución seria de gran ayuda.-

Un gran abrazo.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

Danyfirex

Pues podrías hacer una función que al presionar backspace agarre tu cadena almacenada y le haga un mid(cadena,1,tamaño(cadena)-1) y la imprima de nuevo.

es lo que se me ocurre ahorita.

espero te ayude mi respuesta.


saludos tocayo.


DanielPy

Hola tocayo.
Bueno ya tengo finalizado el código,no lo pego porque me lo enseñaron en otro foro, la idea es exactamente la misma.-

Un saludo a todos y hasta la próxima.-
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-