Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pass an Array to a Sub
#1
Hello all,

I'm pretty new to ZX Basic so please forgive my possible beginner questions.

I'd like to pass an Array to a Sub but cannot seem to figure out how.


Code:
dim SortArray(10) as string SUB SelectionSort (SortArray) 'Compile Error: Syntax Error. Unexpected token 'SortArray' <ARRAY_ID> {Code} END sub '************************ Main **************************** Let SortArray(0) = "Line 00" Let SortArray(1) = "Line 02" Let SortArray(2) = "Line 08" Let SortArray(3) = "Line 06" Let SortArray(4) = "Line 01" Let SortArray(5) = "Line 03" Let SortArray(6) = "Line 07" Let SortArray(7) = "Line 04" Let SortArray(8) = "Line 05" SelectionSort(SortArray) ' Compile Error: Variable 'SortArray' is an array and cannot be used in this context

Thanks in advance for any insights Smile
Reply
#2
Sorry, my example was unclear.
I'd like to pass an array to the routine to be able to re-use it in the same application and also to be able to put it in a library.

So, perhaps I should have presented it like this:



Code:
dim MyArray(10) as string SUB SelectionSort (SortArray)   {Code} END sub '************************ Main **************************** Let MytArray(0) = "Line 00" Let MytArray(1) = "Line 02" Let MytArray(2) = "Line 08" Let MytArray(3) = "Line 06" Let MytArray(4) = "Line 01" Let MytArray(5) = "Line 03" Let MytArray(6) = "Line 07" Let MytArray(7) = "Line 04" Let MytArray(8) = "Line 05" SelectionSort(MytArray)
Reply
#3
(2020-04-04, 09:26 AM)XoRRoX Wrote: Sorry, my example was unclear.
I'd like to pass an array to the routine to be able to re-use it in the same application and also to be able to put it in a library.

So, perhaps I should have presented it like this:



Code:
dim MyArray(10) as string SUB SelectionSort (SortArray)   {Code} END sub '************************ Main **************************** Let MytArray(0) = "Line 00" Let MytArray(1) = "Line 02" Let MytArray(2) = "Line 08" Let MytArray(3) = "Line 06" Let MytArray(4) = "Line 01" Let MytArray(5) = "Line 03" Let MytArray(6) = "Line 07" Let MytArray(7) = "Line 04" Let MytArray(8) = "Line 05" SelectionSort(MytArray)

ZX Basic does not support (yet) passing arrays by parameter. It's planned, however, but not easy to implement.
Some people use macros (#define ...., like in C, which are allowed) or use global variables for the moment.

I will update when it's implemented.
Reply
#4
Cool - thanks Smile
Reply
#5
ZX Basic now supports passing array as parameters! Cool

Code:
SUB SelectionSort (ByRef SortArray() as String)   {Code} END sub

If you don't use ByRef it will be enforced anyway.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)