Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Nanoc en 10 Febrero 2010, 00:57 am



Título: Concatenar Array de bytes con string
Publicado por: Nanoc en 10 Febrero 2010, 00:57 am
Buenas, tengo una duda que no se como solucionar, tengo un string y quiero agregar su contenido al final de un array de bytes, para que se entienda
Código:
Dim array() as byte
Dim Datos as string
Datos = "Datos"
array = array + Datos

Obviamente esa ultima linea no es correcta, pero espero que se entienda lo que quiero hacer, como puedo hacerlo?

Gracias


Título: Re: Concatenar Array de bytes con string
Publicado por: b10s_0v3rr1d3 en 10 Febrero 2010, 01:20 am

un ejemplo podria ser posicionarse al final del array y con la funcion mid$() ir añadiendo los distintos caracteres del string al array
no se si me explique bien xD


Título: Re: Concatenar Array de bytes con string
Publicado por: Nanoc en 10 Febrero 2010, 01:23 am
Si me escribes una funcion que lo haga perfecto XD


Título: Re: Concatenar Array de bytes con string
Publicado por: b10s_0v3rr1d3 en 10 Febrero 2010, 01:51 am
lol.....no creo que hacer el trabajo de los demas asi sin mas, ayude en nada.....
solo comentare que para recorrerlo puedes usar un for y luego alguna que otra variable para el posicionamiento del "puntero" luego la funcion mid$() hace uso de dicha var y alguna cosa mas, por ejemplo

[···code···]

(dentro del bucle for)

arr(x) = AscW(Mid$(cadena, x + 1, 1))

(x = var usada en el bucle for)

[···resto de code···]



Título: Re: Concatenar Array de bytes con string
Publicado por: BlackZeroX en 10 Febrero 2010, 02:33 am
.
Es mas facil de lo que parece

Código
  1.  
  2. Dim ArrayStr() as byte
  3. ArrayStr = strconv("Hola Mundo",vbfromunicode) ' la inversa es con vbunicode
  4.  
  5.  

Para Re-Dimensionar el array usa redim preserve  y / o solo redim

Sangrientas Lunas!¡.
.


Título: Re: Concatenar Array de bytes con string
Publicado por: cobein en 10 Febrero 2010, 03:05 am
Código:
Private Sub Form_Load()
    Dim bvData() As Byte
    Dim sData As String

    bvData = CStr(bvData) & sData

End Sub


Título: Re: Concatenar Array de bytes con string
Publicado por: Nanoc en 10 Febrero 2010, 09:48 am
Código:
Private Sub Form_Load()
    Dim bvData() As Byte
    Dim sData As String

    bvData = CStr(bvData) & sData

End Sub

Poniendo eso compila, pero los datos que quiero meter en el array son binarios, no es texto, y la conversion no me la hace bien, alguna idea?


Título: Re: Concatenar Array de bytes con string
Publicado por: BlackZeroX en 10 Febrero 2010, 21:54 pm
.
Haber si te sirve lo acabo de hacer por que me llamo la atención esto:

Código
  1.  
  2. '
  3. '   /////////////////////////////////////////////////////////////
  4. '   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
  5. '   //                                                         //
  6. '   // Web:     http://InfrAngeluX.Sytes.Net/                  //
  7. '   //                                                         //
  8. '   //    |-> Pueden Distribuir Este Codigo siempre y cuando   //
  9. '   // no se eliminen los creditos originales de este codigo   //
  10. '   // No importando que sea modificado/editado o engrandesido //
  11. '   // o achicado, si es en base a este codigo                 //
  12. '   /////////////////////////////////////////////////////////////
  13.  
  14. Option Explicit
  15.  
  16. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
  17.  
  18. Public Function StrConbyte(StrData As String, ByRef vArray() As Byte, Optional StrAntes As Boolean = False) As Byte()
  19.  
  20. Dim ArrayStr()                  As Byte
  21. Dim ArrayTmp()                  As Byte
  22. Dim ArrayCantElemStr            As Long
  23. Dim ArrayCantElemArray          As Long
  24. Dim CopyBytesLenStr             As Long
  25. Dim CopyBytesLenArray           As Long
  26. Const LenByteArray = 2
  27.  
  28.    If Len(StrData) > 0 Then
  29.  
  30.        ArrayStr = StrConv(StrData, vbFromUnicode)
  31.        ArrayCantElemStr = UBound(ArrayStr) + 1
  32.        ArrayCantElemArray = UBound(vArray) + 1
  33.  
  34.        ReDim ArrayTmp(ArrayCantElemStr + UBound(vArray))
  35.  
  36.        CopyBytesLenStr = LenByteArray * ArrayCantElemStr
  37.        CopyBytesLenArray = LenByteArray * ArrayCantElemArray
  38.  
  39.        If StrAntes Then
  40.            CopyMemory ArrayTmp(0), ArrayStr(0), CopyBytesLenStr
  41.            CopyMemory ArrayTmp(ArrayCantElemStr), vArray(0), CopyBytesLenArray
  42.        Else
  43.            CopyMemory ArrayTmp(0), vArray(0), CopyBytesLenArray
  44.            CopyMemory ArrayTmp(ArrayCantElemArray), ArrayStr(0), CopyBytesLenStr
  45.        End If
  46.  
  47.        StrConbyte = ArrayTmp
  48.  
  49.    End If
  50.  
  51. End Function
  52.  
  53.  

ejemplo en funcionamiento:

Código
  1.  
  2. Sub main()
  3.  
  4. Dim ArrayHola()                 As Byte
  5.  
  6.    ArrayHola = StrConv("BlackZeroX-", vbFromUnicode)
  7.    ArrayHola = StrConbyte("InfrangeluX", ArrayHola)
  8.    MsgBox StrConv(ArrayHola, vbUnicode)
  9.  
  10.    ArrayHola = StrConv("-BlackZeroX", vbFromUnicode)
  11.    ArrayHola = StrConbyte("InfrangeluX", ArrayHola, True)
  12.    MsgBox StrConv(ArrayHola, vbUnicode)
  13.  
  14. End Sub
  15.  
  16.  

P.D.: con unas modificaciones funcionara con integer, long etc. con string, creo que se haría mas largo xP, por hay lo revisan q seguro algo se me a de ver pasado.

Sangrientas Lunas!¡.
.