Platforms to show: All Mac Windows Linux Cross-Platform

Back to MemoryBlock class.

MemoryBlock.SwapBytes32MBS(offset as Integer, numBytes as Integer)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method MemoryBlock MBS Util Plugin 4.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Swaps longs inside the given bounds inside the memoryblock.
Example
// Test SwapBytes32MBS and SwapBytes16MBS:

const h11223344=&h11223344
const h22114411=&h22114433 // 16bit swap
const h44332211=&h44332211 // 32bit swap

dim m as memoryBlock
dim ok as Integer

m=NewmemoryBlock(20)
m.Long(00)=h11223344
m.Long(04)=h11223344
m.Long(08)=h11223344
m.Long(12)=h11223344
m.Long(16)=h11223344

m.SwapBytes16MBS(4,4)
m.SwapBytes32MBS(12,4)

if m.Long(00)=h11223344 then
ok=ok+1
else
MsgBox "00: "+hex(m.Long(00))
end if

if m.Long(04)=h22114411 then
ok=ok+1
else
MsgBox "04: "+hex(m.Long(04))
end if

if m.Long(08)=h11223344 then
ok=ok+1
else
MsgBox "08: "+hex(m.Long(08))
end if

if m.Long(12)=h44332211 then
ok=ok+1
else
MsgBox "12: "+hex(m.Long(12))
end if

if m.Long(16)=h11223344 then
ok=ok+1
else
MsgBox "16: "+hex(m.Long(16))
end if

if ok=5 then
MsgBox "OK"
else
MsgBox "Fail"
end if

It should do something like this:

dim m as memoryBlock

for i=0 to numbytes step 2
m.long(i)=EndianSwap32MBS(m.long(i))
next

The items on this page are in the following plugins: MBS Util Plugin.


The biggest plugin in space...