Main sections
ADDRESSOF()
ptr% = ADDRESSOF(foo)
Returns the address pointer of a function. Useful for SORTARRAY.
LOCAL arr[]
// default sort
Fill(arr[])
SORTARRAY arr[], 0
FOR i=0 TO LEN(arr[])-1
PRINT arr[i], 0, i*16
NEXT
// sort by function
Fill(arr[])
SORTARRAY arr[], ADDRESSOF(compare)
FOR i=0 TO LEN(arr[])-1
PRINT arr[i], 100, i*16
NEXT
// inverse sort by function
Fill(arr[])
SORTARRAY arr[], ADDRESSOF(inverse_compare)
FOR i=0 TO LEN(arr[])-1
PRINT arr[i], 200, i*16
NEXT
SHOWSCREEN
MOUSEWAIT
FUNCTION Fill: arr[]
REDIM arr[10]
// Populate array with known values
RESTORE mydata
FOR myloop=0 TO 9
READ arr[myloop]
NEXT
ENDFUNCTION
FUNCTION compare: BYREF a, BYREF b
IF a<b THEN RETURN -1
IF a>b THEN RETURN 1
RETURN 0
ENDFUNCTION
FUNCTION inverse_compare: BYREF a, BYREF b
IF a<b THEN RETURN 1
IF a>b THEN RETURN -1
RETURN 0
ENDFUNCTION
STARTDATA mydata:
DATA 40,80,20,10,90,50,100,60,30,70
ENDDATA
Output:
10 10 100
20 20 90
30 30 80
40 40 70
50 50 60
60 60 50
70 70 40
80 80 30
90 90 20
100 100 10