elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Error al comparar 2 numeros introducidos a traves de un textbox[SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al comparar 2 numeros introducidos a traves de un textbox[SOLUCIONADO]  (Leído 2,890 veces)
01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Error al comparar 2 numeros introducidos a traves de un textbox[SOLUCIONADO]
« en: 8 Abril 2016, 06:20 am »

mi error es un poco tonto, pero igual me estoy ahogando en este vasito de agua, es lo suiguiente, estoy introduciendo 2 numeros es 2 textbox diferentes y reviso de que el primero sea menor que el segundo:

Código
  1. if Trim(TextBox1.Text()) <= Trim(TextBox2.Text() then
  2.   'almaceno
  3. else
  4.   msgbox("Ingrese los datos corectos")
  5. end if
  6.  

resulta que ingrese los siguiente:
Código
  1. TextBox1.Text() = 90
  2. TextBox2.Text() = 100
  3.  
al ejecutar salta al Else de la condicion, al parecer me esta comparando como si fueran tipos de datos textos, puesto que 1 es menor a 9 en terminos de ASCII, que puedo hacer para que lo compare como si fueran 2 numeros.?? :huh:


« Última modificación: 10 Abril 2016, 06:10 am por 01munrra » En línea

m0rf


Desconectado Desconectado

Mensajes: 828


BACK!


Ver Perfil
Re: Error al comparar 2 numeros introducidos a traves de un textbox
« Respuesta #1 en: 8 Abril 2016, 07:01 am »

Según msdn vía san google: https://msdn.microsoft.com/en-us/library/1aey0kb6(v=vs.90).aspx
Código
  1. int leInteger;
  2.  
  3. leInteger = Convert.ToInt32(textBox1.Text);
  4.  
  5. leInteger = int.Parse(textBox1.Text);
  6.  

No te digo como tiene que quedar porque esta muy regurgitado el problema ya, no tienes ni que masticar.

Saludos.


En línea

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.806



Ver Perfil
Re: Error al comparar 2 numeros introducidos a traves de un textbox
« Respuesta #2 en: 8 Abril 2016, 12:56 pm »

que puedo hacer para que lo compare como si fueran 2 numeros.?? :huh:

La comparación de texto se compara caracter por caracter, y da los mismos resultados que se pueden ver en el ordenamiento lexicográfico, ya que "9" es mayor que "1", por ende "90" es mayor que "100".



Asumiendo que los valores introducidos siempre serán números dentro del rango aceptable para un valor de tipo Int32, entonces la manera más rápida en términos de rendimiento sería realizando un casteo (en la expresión a evaluar):

Código
  1. TextBox1.Text = CStr(90)
  2. TextBox2.Text = CStr(100)
  3.  
  4. If (CInt(TextBox1.Text) <= CInt(TextBox2.Text)) Then
  5.    ' ...
  6.  
  7. Else
  8.    ' ...
  9.  
  10. End If

De lo contrario, es decir, si los datos introducidos son inseguros, entonces puedes aplicar un control de errores básico para comprobar si los valores de texto se pueden convertir a enteros:
Código
  1. TextBox1.Text = CStr(1)
  2. TextBox2.Text = "qwerty"
  3.  
  4. Dim valueA As Integer
  5. Dim valueB As Integer
  6.  
  7. If Not (Integer.TryParse(TextBox1.Text, valueA)) OrElse
  8.   Not (Integer.TryParse(TextBox2.Text, valueB)) Then
  9.    MessageBox.Show("Error")
  10.  
  11. Else
  12.    '...
  13.  
  14. End If

Dicho esto, ten en cuenta que no es necesario utilizar la función Trim, las funciones de conversión a enteros ya se encargan de la lógica respecto al tratamiento de los espacios en blanco a la izquierda y derecha, utilizando Trim solo consigues hacer más pesado tu algoritmo, aunque realmente es algo que no tiene ninguna importancia cuando queremos comparar eventualmente 2 valores, pero mejor acostumbrarse a intentar ser lo más eficiente posible hasta cuando no sea necesario, ya que sabiendo estas cosas al menos ayudarán para cuando necesites aplicar un rendimiento elevado en comparaciones más intensivas o costosas.

De todas formas, en caso de que quieras usar Trim por el motivo que sea, en este u otros códigos me refiero, entonces deberías usar la extensión de método String.Trim();
actualmente estás utilizando la función Trim del espacio de nombres Microsoft.VisualBasic, el cual todo su contenido o miembros son una porquería deprecada en términos de rendimiento (a pesar de ser puro código .Net), intenta evitar usar nada como Left, Mid, y etc, puesto que tienes un equivalente altamente cualificado (para cualquier metodo de VB6) en el resto de la librería de classes de .Net Framework.

Saludos
« Última modificación: 8 Abril 2016, 13:18 pm por Eleкtro » En línea

01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Re: Error al comparar 2 numeros introducidos a traves de un textbox
« Respuesta #3 en: 10 Abril 2016, 06:09 am »

Eleкtro me funciono con 
Código
  1. CInt
gracias!!!...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines