none
Ayuda con adicion de variable byte() RRS feed

  • Pregunta

  • Amigos, la idea es ir adicionando el resultado en la variable bytes, para al final utilizarlo en su conjunto....

            Dim bytes As Byte()
            Dim x As String = "0400000007417070726F76650849504D2E4E6F74650007417070726F7FFF"
            For ii = 1 To x.Length Step 2
                Dim aa As String = Mid(x, ii, 2)
                Dim qq As Integer = Convert.ToInt32(aa, 16)
                bytes = ToBinary(qq)
            Next

      Public Function ToBinary(ByVal stringPassed As String) As Byte()
            Dim encoding As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding()
            Return encoding.GetBytes(stringPassed)
        End Function


    miércoles, 24 de abril de 2019 1:37

Respuestas

  • No puedes "ir adicionando" en la variable bytes porque la has declarado como array, y los arrays son de longitud fija (bueno, existe el Redim pro es ineficiente porque el array se destruye y se vuelve a construir cada vez que lo redimansionas). Afortunadamente, en este caso sabes de antemano el tamaño que debe tener el array porque resulta ser la mitad de la longitud de la cadena x. El método ToBinary te sobra; el Integer se puede convertir en byte directamente sin necesidad de una función.

            Dim x As String = "0400000007417070726F76650849504D2E4E6F74650007417070726F7FFF"
            Dim bytes(x.Length \ 2) As Byte
            
            For ii = 0 To x.Length Step 2
                Dim aa As String = x.Substring(ii, 2)
                Dim qq As Integer = Convert.ToInt32(aa, 16)
                bytes(ii) = qq
            Next

    • Marcado como respuesta Edwin Delgado miércoles, 24 de abril de 2019 13:09
    miércoles, 24 de abril de 2019 5:59