vb Datos de bytes anexados
Necesita utilizar la función API: CopyMemory.
Declare?Sub?CopyMemory?Lib?"kernel32"?Alias?"RtlMoveMemory"?(pDest?As?Any,? pSrc ?As?Any,?ByVal?ByteLen?As?Long)
dim?bytBuff()?as?byte'data Buff
dim?bytRec()?as?byte ' Matriz para recibir datos
dim?bytTmp()?as?byte'matriz temporal
dim?lngBuff?as?long?'La longitud de la matriz Buff
dim?startIndex?as?long?'Registra la posición inicial en la matriz Buff
dim?lngRec?as?long'Registra la longitud de los datos recibidos.
lngBuff=65536
redim?bytBuff(lngBuff-1)
bytRec=datos recibidos
if?startIndex ubound(bytRec) 1lt;lngBuff?then p>
'Compruebe si el Buff todavía tiene suficiente espacio. Si es así, agregue los datos al Buff.
CopyMemory?bytBuff(startIndex), bytRec(0), ubound(bytRec) 1
startIndex =startIndex ubound(bytRec) 1
else
'Espacio de datos Buff insuficiente
redim?bytTmp(startIndex-1)
CopyMemory ?bytTmp(0), ?bytBuff(0), startIndex 'Copiar datos a una matriz temporal
'Guardar datos.
startIndex=0
CopyMemory? bytBuff(startIndex), bytRec(0), ubound(bytRec) 1
startIndex=startIndex ubound(bytRec) 1
end?if
lngRec?= lngRec? ubound(bytRec) 1'Registra la duración de la recepción de datos
'Comprueba si los datos están completos
'Si los datos recibidos están completos, escribe el Buffer datos al archivo.
if?lngRec?=Longitud del archivo?entonces
redim?bytTmp(startIndex-1)
CopyMemory?bytTmp(0) ,?bytBuff(0),startIndex' Copiar datos a una matriz temporal
'Guardar datos.
end?if