Resultados 1 al 7 de 7

Tema: separar una estringa

  1. #1
    Forero inexperto
    Fecha de ingreso
    17 mar, 09
    Mensajes
    1

    Predeterminado separar una estringa

    Hola, a todos quisiera, eliminar los primeros 5 caracteres, estoy leyendo del puerto rs232 en un text box esto:
    SE14N00001111 y SE24N00001110 la primera stringa representa el valor digital y el segundo el valor analogico, estos dos valores me los escribe uno debajo del otro (aclaro el text box es multilinias) y estos datos se refrescan cada 80ms osea que en pocos segundos tengo miles de lineas, la idea es separar estos datos asi: en un text box 00001111 y en el otro text box asi: 00001110. Sin SE14N e SE24N., Aqui mando un ejemplo para descriminar los dos datos solo que me da un error de sintaxis alguien me puede ayudar gracias, El otro problema es como hacer para transformar el valor hexadecimal que me da la stringa analogica del text box en un valor decimal de 0 a 10, agracias anticipadamente.

    Private Sub Text1_Change()
    Dim texto() As String = split(text1.text, vbcrlf) (AQUI ME DA ERROR DE SINTAXIS Y NO LOGRO ENTENDER POR QUE)


    for each S AS string in texto
    If Mid(S, 0, 5) = "SE14N" Then 'Es digital y los coloco en el textbox2
    textbox2.Text = textbox2.Text + vbCrLf + Mid(S, 5, Len(S) - 5)
    Else
    'no lo es, y lo coloco en el textbox3
    textbox3.Text = textbox3.Text + vbCrLf + Mid(S, 5, Len(S) - 5)
    End If
    Next
    End Sub

  2. #2
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: separar una estringa

    Hola, Jorge, bienvenido...

    El error puede deberse a que estás utilizando Dim(), por lo que no podés asignarle valor a esa variable en ese momento. Tendrías que asignarle el valor más adelante. Por ejemplo:

    Código:
    Dim texto() As String
    texto() = Split(Text1.Text, vbCrLf)
    Y, más abajo también tendrías un error parecido cuando le agregas el "As String" luego de "For Each S". Deberías quitarlo.
    Además, el Mid() no puede comenzar en el caracter cero de una cadena, pues éste no existe. Justamente por esto, también deberás cambiar el "5" del comienzo de extracción de cadena, por un "6", de lo contrario, te quedará la "N" en la cadena final. Debes cambiar "Mid(s, 0, 5)" por "Mid(s, 1, 6)"

    Código:
    For Each s In texto
        If Mid(s, 1, 5) = "SE14N" Then
            Text2.Text = Text2.Text + vbCrLf + Mid(s, 6, Len(s) - 5)
        Else
            Text3.Text = Text3.Text + vbCrLf + Mid(s, 6, Len(s) - 5)
        End If
    Next
    Si querés ser más prolijo, deberías declarar la variable "S" al principio, junto con "Texto". Esta variable debe ser de tipo Variant:

    Código:
    Dim S as Variant
    Dim texto() As String
    texto() = Split(Text1.Text, vbCrLf)
    Para convertir de hexa a decimal, lo que hay que hacer es recorrer el número hexadecimal empezando desde la derecha, dígito a dígito, y multiplicarlo por 16 elevado a un índice, igual a la posición de ese dígito, empezando desde cero. O sea, el dígito de la derecha, habrá que multiplicarlo por 16 elevado a la 0 potencia. El segundo, por 16 elevado a la 1 potencia. El tercero, por 16 elevado a la 2 potencia. Y así sucesivamente...

    Por ejemplo, para convertir 8A7 a decimal:

    7 x (16 ^ 0) = 7
    10 x (16 ^ 1) = 160 (*)
    8 X (16 ^ 2) = 2048

    Luego se suman todos los resultados, y el equivalente decimal a 7A8 hexadecimal resulta ser: 7+160+2048 = 2215

    El código te lo dejo a vos ...
    Ahora, tengo una duda: ¿Estás seguro que el valor analógico es hexadecimal? ¿No es binario?



    (*) Recordar que en hexa: A=10, B=11, C=12, D=13, E=14, F=15
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  3. #3
    Forero Experto Avatar de Mariscal
    Fecha de ingreso
    04 ago, 08
    Ubicación
    Al fondo, a la derecha...
    Mensajes
    3,238

    Predeterminado Respuesta: separar una estringa

    ...Arielo.
    ¿que es una estringa?

  4. #4
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: separar una estringa

    ... yo lo entendí como que se refería a "string", y como al parecer Jorge es de Italia, pues... será la "italianización" de la palabreja en inglés...
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  5. #5
    Forero Experto Avatar de Mariscal
    Fecha de ingreso
    04 ago, 08
    Ubicación
    Al fondo, a la derecha...
    Mensajes
    3,238

    Predeterminado Respuesta: separar una estringa

    ...de la calle Italia será
    El pueblo sigue sin entender que es en términos informáticos...

  6. #6
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: separar una estringa

    Ah, perdón...

    Un "String" es simplemente una cadena de caracteres.

    En VisualBasic, se llama así a un tipo de variables, que almacena tanto letras como números. Por ejemplo, una variable que guarde el nombre y apellido de un cliente, deberá ser de tipo "string".
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  7. #7
    Forero Experto Avatar de Mariscal
    Fecha de ingreso
    04 ago, 08
    Ubicación
    Al fondo, a la derecha...
    Mensajes
    3,238

    Predeterminado Respuesta: separar una estringa

    ...gracias Arielo.

    -deberían agradecerme que insisto para que el Moderador nos explique en lenguaje claro sobre los avatares y secretos informáticos-

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •