Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Di3goXx en 6 Octubre 2011, 04:45 am



Título: Extraccion de datos del texbox
Publicado por: Di3goXx en 6 Octubre 2011, 04:45 am
hola denuevo aca teniendo una nueva pequeña duda en c#
por ejemplo si quiero extraer un numero de un texbox hago el

Código:
int variable
variable=Int32.Parse(texbox1.Text)

pero si no se ingresa nada el programa se frezea o  se para
como hago para que si no hay datos(numeros) que no haga esa extraccion para que no se frezee. :rolleyes:


Título: Re: Extraccion de datos del texbox
Publicado por: $Edu$ en 6 Octubre 2011, 05:04 am
Podrias usar manejo de errores, tambien hay una funcion que devuelve true o false si se puede convertir y de paso lo guarda:

Código
  1. int variable;
  2. bool conver
  3.  
  4. conver = int.TryParse(textbox1.text, out variable))
  5.  
  6. if conver == false MessageBox.Show("Introduzca un numero valido!");
  7.  
  8.  

Y lo del manejo de errores es con el Try-Catch
Código
  1. int variable;
  2.  
  3. Try {
  4. variable = int.Parse(textbox1.text)
  5. }
  6. catch {MessageBox.Show("Introduzca un numero valido!"); }
  7.  

Algo asi, talvez esta mal pero espero que entiendas y sea lo que pedias.


Título: Re: Extraccion de datos del texbox
Publicado por: Di3goXx en 7 Octubre 2011, 01:50 am
Lo del try lo intente y me salio; pero en otro problema lo intente con una variable string y no salia el mensaje sera que se agrega otra cosa o no funciona con string ??? lo intente con char y si me salio


Título: Re: Extraccion de datos del texbox
Publicado por: $Edu$ en 7 Octubre 2011, 02:30 am
Cual de los 2 try? xD Y no entendi bien que quieres decir, la idea es convertir un string a integer, si este no se puede convertir porque es una letra por ejemplo, entonces manejamos ese error y hacemos salir un aviso de que ese numero que ingreso no es valido, es eso simplemente.


Título: Re: Extraccion de datos del texbox
Publicado por: Di3goXx en 7 Octubre 2011, 03:11 am
No me refiero al try, cuando declaro una variable en string supongo que deberia salir el mensaje de "ingresa una letra" si es que no se pone nada pero al ejecutar no me sale ni un messagebox. Creo que al no poner nada lo considera como si fuera un espacio de la barra espaciadora..
por ejemplo
Código:
string letra;
            try
            {
                letra = textBox1.Text;
               if (letra.Equals ("A"))
                   label2.Text="tu letra es A";
            }
            catch { MessageBox.Show("Ingresa una letra"); }
al no ingresar nada y darle click al boton no me sale el mensaje de ingresa una letra..


Título: Re: Extraccion de datos del texbox
Publicado por: $Edu$ en 7 Octubre 2011, 03:41 am
Porque usas Equals? Has leido algun buen tutorial de C# ? hay q leer y leer asi se aprende, busca en google: Lenguaje de programacion C# que es un tutorial en pdf de 300 paginas, las vas leyendo de a poco, repasando, y seguir leyendo.

De todos modos te contesto tu duda, pero a ver si te lees ese tutorial que te digo, veras como se te van muchas dudas ;)
Vos declaras el string letra, luego le asignas el contenido de tu textbox1, pero que tipo de dato crees q es el text1.text ? un string! Entonces si escribe "3173761" sera string igual, lo vimos en el ejemplo anterior que por algo tenias que hacer la conversion de string a integer xD
Digo esto porque estas usando Equals, que si mal no recuerdo es para verificar la igualdad del tipo de los objetos y en tu caso dara tru porque letra es string y "A" como lo pusiste entre comillas es un string, que hubiera sido lo mismo a que pongas "jdawbhdab"

Ahora que ya sabes eso, seguimos con lo que talvez estas intentando hacer, quieres que el usuario ingrese una letra a tu textbox y verifica si es la letra "A", bueno es tan simple como poner if (letra == "A") label2.Text = "tu letra es A";
A cambio de Equals, ahora estamos verificando los valores de las variables, no su tipo.


Ahora si, te digo que cuando un textbox1 esta vacio, en realidad esta vacio pero es "" su valor, entonces no habra errores ninguno y aca no se usan manejos de errores ( Try-Catch) sino que se hace una verificacion antes de lo que quieras hacer, poniendo:

Código
  1. if (letra == "") MessageBox.Show("Ingresa una letra");
  2.  

Saludos!


Título: Re: Extraccion de datos del texbox
Publicado por: Keyen Night en 7 Octubre 2011, 03:45 am
Es algo complicado que entiendas porque pasa eso porque eres nuevo en el tema, sin animos de ofender ;D te explicare lo mas sencillo que pueda

Yo se lo que intentas hacer, estas tratando de capturar un error cuando no se ingresa una letra, pero estas usando para comparar la función .Equals y una de sus caracteristicas es que el parametro de entrada es System.Object que soporta todos los tipos, así que como soporta todos los tipos si el usuario coloca un número o una letra o cualquier cosa, Equals si los 2 objetos no son iguales simplemenete retorna false sin errores. Equals puede comparar incluso una imagen con una letra aunque no tenga sentido.

Como dicen arriba te recomiendo leer muchísimo y prácticar aún más.


Título: Re: Extraccion de datos del texbox
Publicado por: Di3goXx en 7 Octubre 2011, 04:02 am
Ya no se que decir luego de esas palisas  :-[                  
:laugh:
pero para resumir
cuando se usa la verificacion de errores o el if ?
es que yo usaba el try catch  como me dijo $edu$ para que no se freeze el programa si no se ponia nada pero supongo al usar el if le puedo poner return...


Título: Re: Extraccion de datos del texbox
Publicado por: Keyen Night en 7 Octubre 2011, 05:19 am
En resumen if lo vas a usar para comprobar cualquier condición y try para capturar error. Como ya te habia dicho $Edu$, la mayoria de los tipos tienen TryParse, que devuelve false cuando no se pudo convertir.

Código
  1. int variable;
  2. bool conver;
  3.  
  4. conver = int.TryParse(textbox1.text, out variable));
  5.  
  6. if (conver == false)
  7. {
  8. MessageBox.Show("Introduzca un numero valido!");
  9. }