Concatenar Array de bytes con string

Iniciado por Nanoc, 10 Febrero 2010, 00:57 AM

0 Miembros y 1 Visitante están viendo este tema.

Nanoc

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

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

b10s_0v3rr1d3


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

Nanoc

Si me escribes una funcion que lo haga perfecto XD

b10s_0v3rr1d3

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···]


BlackZeroX

.
Es mas facil de lo que parece

Código (vb) [Seleccionar]


Dim ArrayStr() as byte
ArrayStr = strconv("Hola Mundo",vbfromunicode) ' la inversa es con vbunicode



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

Sangrientas Lunas!¡.
.
The Dark Shadow is my passion.

cobein

Private Sub Form_Load()
    Dim bvData() As Byte
    Dim sData As String

    bvData = CStr(bvData) & sData

End Sub
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Nanoc

#6
Cita de: cobein en 10 Febrero 2010, 03:05 AM
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?

BlackZeroX

#7
.
Haber si te sirve lo acabo de hacer por que me llamo la atención esto:

Código (vb) [Seleccionar]


'
'   /////////////////////////////////////////////////////////////
'   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
'   //                                                         //
'   // Web:     http://InfrAngeluX.Sytes.Net/                  //
'   //                                                         //
'   //    |-> Pueden Distribuir Este Codigo siempre y cuando   //
'   // no se eliminen los creditos originales de este codigo   //
'   // No importando que sea modificado/editado o engrandesido //
'   // o achicado, si es en base a este codigo                 //
'   /////////////////////////////////////////////////////////////

Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Function StrConbyte(StrData As String, ByRef vArray() As Byte, Optional StrAntes As Boolean = False) As Byte()

Dim ArrayStr()                  As Byte
Dim ArrayTmp()                  As Byte
Dim ArrayCantElemStr            As Long
Dim ArrayCantElemArray          As Long
Dim CopyBytesLenStr             As Long
Dim CopyBytesLenArray           As Long
Const LenByteArray = 2

   If Len(StrData) > 0 Then
       
       ArrayStr = StrConv(StrData, vbFromUnicode)
       ArrayCantElemStr = UBound(ArrayStr) + 1
       ArrayCantElemArray = UBound(vArray) + 1
       
       ReDim ArrayTmp(ArrayCantElemStr + UBound(vArray))
       
       CopyBytesLenStr = LenByteArray * ArrayCantElemStr
       CopyBytesLenArray = LenByteArray * ArrayCantElemArray
       
       If StrAntes Then
           CopyMemory ArrayTmp(0), ArrayStr(0), CopyBytesLenStr
           CopyMemory ArrayTmp(ArrayCantElemStr), vArray(0), CopyBytesLenArray
       Else
           CopyMemory ArrayTmp(0), vArray(0), CopyBytesLenArray
           CopyMemory ArrayTmp(ArrayCantElemArray), ArrayStr(0), CopyBytesLenStr
       End If
       
       StrConbyte = ArrayTmp
   
   End If
   
End Function



ejemplo en funcionamiento:

Código (vb) [Seleccionar]


Sub main()

Dim ArrayHola()                 As Byte

   ArrayHola = StrConv("BlackZeroX-", vbFromUnicode)
   ArrayHola = StrConbyte("InfrangeluX", ArrayHola)
   MsgBox StrConv(ArrayHola, vbUnicode)
   
   ArrayHola = StrConv("-BlackZeroX", vbFromUnicode)
   ArrayHola = StrConbyte("InfrangeluX", ArrayHola, True)
   MsgBox StrConv(ArrayHola, vbUnicode)
   
End Sub



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!¡.
.
The Dark Shadow is my passion.