de byte a long

Iniciado por claus86, 7 Marzo 2010, 01:34 AM

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

claus86

Hola como estan?  :D
necesito que me ayuden, yo quiero pasar de byte a long por ejemplo yo tengo este numero 48 en byte y se que este 94545712 es ese byte pasado a long alguien me podria explicar como hago para pasar el byte que quiera a long?

skapunky

Te pondría el código pero tengo el visual basic en el pc de torre y estoy en el portátil, de todas formas te dejo un enlace que no solo hay ejemplos de funciónes con lo que quieres sinó viceversa y muchas más:

http://www.bigresource.com/VB-Help-converting-long-to-byte-array-and-byte-array-to-long-GwlkH2pMTT.html

Espero que te sirva de inspiración  ;)
Killtrojan Syslog v1.44: ENTRAR

claus86

Gracias por el link pude pasar de long a byte con este codigo

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

Public Function LongToByteArray(ByVal lng As Long) As Byte()

Dim ByteArray(0 To 2) As Byte
CopyMemory ByteArray(2), ByVal VarPtr(lng), Len(lng)
LongToByteArray = ByteArray

End Function

Private Sub Command1_Click()
Dim bytArr() As Byte
Dim iCtr As Integer
bytArr = LongToByteArray(94148488)
For iCtr = 0 To UBound(bytArr)
Text1.Text = bytArr(iCtr)
Next
End Sub


pero no logro pasar de byte a long  >:(

LeandroA

Hola me parece que tu funcion esta mal, un long  = 4 bytes por lo tanto tienes que redimencionar el array a  (0 to 3)

asi es como creo que iria


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

Public Function LongToByteArray(ByVal lng As Long) As Byte()
    Dim ByteArray(3) As Byte
    CopyMemory ByteArray(0), lng, LenB(lng)
    LongToByteArray = ByteArray
End Function

Public Function ByteArrayToLong(ByteArray() As Byte) As Long
    CopyMemory ByteArrayToLong, ByteArray(0), LenB(ByteArrayToLong)
End Function


Private Sub Command1_Click()
    Dim bytArr() As Byte
    bytArr = LongToByteArray(94545712)
    MsgBox ByteArrayToLong(bytArr)
End Sub



Saludos.