SwapArrayFields
Posted: Tue Dec 27, 2005 2:21 am
Code updated for 5.20+
Exchange of 2 fields between 2 Arrays.
Exchange of 2 fields between 2 Arrays.
Code: Select all
; SwapArrayFields
; 2005 Hroudtwolf
; Posted: http://www.PureBasic-Lounge.de; http://forums.purebasic.com/english/index.php
Procedure SwapArrayFields(*ArrayAdress1.LONG,Field1.l,*ArrayAdress2.LONG,Field2.l)
Protected *OldAdress1,*OldAdress2
If PeekL(*ArrayAdress1 - 8)=>Field1.l And PeekL(*ArrayAdress2 - 8)=>Field2.l
*ArrayAdress1 + (4*Field1.l)
*ArrayAdress2 + (4*Field2.l)
*OldAdress1= *ArrayAdress1\l
*OldAdress2= *ArrayAdress2\l
*ArrayAdress1\l = *OldAdress2
*ArrayAdress2\l = *OldAdress1
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Dim Array1.s(10)
Dim Array2.s(10)
For x=0 To 10
Array1(x)=RSet(Hex(Random(999999)),6,"0")
Array2(x)=RSet(Hex(Random(999999)),6,"0")
Next x
Debug "Array-1:"+Array1(2)
Debug "Array-2:"+Array2(2)
SwapArrayFields(@Array1(),2,@Array2(),2)
Debug "Array-1:"+Array1(2)
Debug "Array-2:"+Array2(2)