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
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
Si me escribes una funcion que lo haga perfecto XD
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···]
.
Es mas facil de lo que parece
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!¡.
.
Private Sub Form_Load()
Dim bvData() As Byte
Dim sData As String
bvData = CStr(bvData) & sData
End Sub
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?
.
Haber si te sirve lo acabo de hacer por que me llamo la atención esto:
'
' /////////////////////////////////////////////////////////////
' // 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:
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!¡.
.