Visual Basic.NET - Conectar indicador de peso por el puerto serie

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 10 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Conectar indicador de peso por el puerto serie

Publicado por Alejandro (7 intervenciones) el 21/06/2018 19:29:32
Hola, estoy haciendo un programa, en el cual conecto un indicador de pesaje por el puerto serie, el indicador me transmite los dígitos del peso, pero también me envía otros caracteres, como letras y simbolos.
Quisiera que me mostrase en un textbox, únicamente los dígitos de peso, y me descartase los demás caracteres, actualmente tengo el siguiente código para leer del buffer de recepción:

1
2
3
4
5
Private Sub sppuerto_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles sppuerto.DataReceived
        'Para ver peso en ventana principal Bruto
        Dim buffer As String
        buffer = sppuerto.ReadLine
        PESO.Text = "" & buffer.Substring(2)


Luego, he agregado el código "PESO.Text = val(peso2.text)" , con esto, en "peso2,text, ya solo me muestra los números del peso, pero no me funciona bien ese valor, me explico,tengo dos textbox más: Bruto.text y Tara.text, con código, cuando el valor de tara es mayor que el valor de bruto, me sale un mensaje de error, hasta ahi todo bien, el problema es cuando el peso que yo pongo como bruto es de 5 digitos, por ejemplo 21980, y el de tara es de menos digitos, por ejemplo 1900, en este caso me sale el error de que 21980 es menor que 1900.
No entiendo lo que ocurre.
Cuando son el mismo número de digitos, funciona todo perfecto. por ejemplo bruto 21980 es mayor que tara 20200.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 224
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Conectar indicador de peso por el puerto serie

Publicado por gilman (81 intervenciones) el 22/06/2018 08:42:19
El problema es que estás comparando cadenas, por lo que "9" es mayor que "1000". Para realizar la comparación numérica debes convertir los datos a un tipo númerico, por ejemplo, a Long mediante CLong
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 10 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Conectar indicador de peso por el puerto serie

Publicado por Alejandro (7 intervenciones) el 22/06/2018 17:12:00
Como puedo utilizar el comando Clong en mi código?, he estado mirando por internet, pero no me funciona nada de lo que hago.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Conectar indicador de peso por el puerto serie

Publicado por Diego (190 intervenciones) el 23/06/2018 00:22:47
La idea qur te proponen es.correcta, solo que la funcion es cLng y no cLong

Saludos y +bytes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de kingk
Val: 173
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Conectar indicador de peso por el puerto serie

Publicado por kingk (77 intervenciones) el 22/06/2018 21:39:18
If CLong(Tara.Text) > CLong(Bruto.Text) Then
Mensaje de error
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar