| Lasse Madsen skrev:
 > Hvordan møblere jeg en 24 bit variabel ud i 3 bytes f.eks.
 >
 > 0xFFFFFF = 0xFF, 0xFF, 0xFF osv...
 >
 > I dag dividere jeg men det er noget lort ... der må være en >>
 > operator i VB ?
 
 Definer "lort" i forbindelse med heltalsdivisioner...
 
 Der er desværre ingen smarte bit-skifte operationer i VB <= 6.0, så du må
 enten gå heltalsdivisionsvejen, som du formentlig allerede bruger, eller
 også må du ty til at kopiere et antal bytes hukommelse fra én variabel
 til en anden.
 
 Her er et eksempel på hver metode:
 
 
 Option Explicit
 
 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
 (pDest As Any, pSource As Any, ByVal ByteLen As Long)
 
 Private Type TSplit
 A As Byte
 B As Byte
 C As Byte
 D As Byte
 End Type
 
 Private ManyBits  As Long
 Private Split1    As TSplit
 Private Split2    As TSplit
 
 Private Sub Form_Load()
 'Tallet som skal splittes op
 ManyBits = &H11223344
 Debug.Print Hex(ManyBits)
 
 'Første metode - kopier 4 bytes
 CopyMemory Split1, ManyBits, 4
 Debug.Print Hex(Split1.A), Hex(Split1.B), Hex(Split1.C), Hex(Split1.D)
 
 'Anden metode - heltalsdivision
 Split2.A = ManyBits And &HFF
 ManyBits = ManyBits \ &H100
 Split2.B = ManyBits And &HFF
 ManyBits = ManyBits \ &H100
 Split2.C = ManyBits And &HFF
 Split2.D = ManyBits \ &H100
 Debug.Print Hex(Split2.A), Hex(Split2.B), Hex(Split2.C), Hex(Split2.D)
 End Sub
 
 
 -------
 Tomas
 
 
 |