#definesubroutine ArrSetup(arr)
; Used to maintain a set of named array indexes
; globally across main program and functions.
if arrinfo(arr,0)==1 ; one dimensional
for _i = 1 to itemcount(arr[0],' ')
_s = itemextract(_i,arr[0],' ')
@%_s% = _i
next _i
elseif arrinfo(arr,0)==2 ; two dimensional
for _i = 1 to itemcount(arr[0,0],' ')
_s = itemextract(_i,arr[0,0],' ')
@%_s% = _i
next _i
endif
drop(_i,_s)
return parr
;Usage in main program:
; arrvar = ARRDIMENSION(100)
; arrvar[0] = "FRED PETE SALLY"
; ArrSetup(*PTRGLOBALDEFINE(arrvar))
; . . .
; arrvar[@SALLY] = 1234
;
;Usage in functions:
; arrvar = ArrSetup(*PTRGLOBAL(arrvar))
; . . .
; X = arrvar[@SALLY]
;
#endsubroutine
mem = arrdimension(100)
mem[0]="left top inifile speed"
arrsetup(*ptrglobaldefine(mem))
#definefunction fred(a)
mem = arrsetup(*ptrglobal(mem))
message(a,mem[@top])
#endfunction
mem[@top] = 45
fred("sally")
exit