Red de conocimiento informático - Problemas con los teléfonos móviles - vb Datos de bytes anexados

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

'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