Description
DIM is a function that declares an array and its dimensions. You can use up to 4 dimensions.
READ is a function that reads the data from
DATA. By default, it starts reading from the beginning of the first
DATA declaration.
DATA is a function that stores any kind of data (numbers and strings/characters) for it to be read. You can organize the data for better reading if you're using 2 dimensions or more (See Example #2).
RESTORE is a useful function for data reading. Instead of allowing
READ to read data starting from the beginning, you can make it start directly from the label.
You can use a
FOR loop to read all the data and store it in an array for future implementation.
Example #1 - One-Dimensional Array
CLS
A=10 'Size of the aray
DIM ARRAY[A] 'Declaring the array and its size
RESTORE @TESTDATA 'Points where to start reading the data
FOR I=0 TO A-1 'From 0 to 9 = 10 iterations for each data
READ C 'With READ you need to store all the data in a temporary variable, in this case C
ARRAY[I]=C 'Now store each data declaration to the array
NEXT
FOR I=0 TO A-1 'This FOR loop is for printing the data
PRINT STR$(ARRAY[I]) 'This converts the data to string
NEXT
END
@TESTDATA 'DATA label
DATA 4,9,2,16,86,12,5,129,56,0 'You can use a comma to separate DATA or use a new DATA line for each one.
Example #2 - Two-Dimensional Array
CLS
A=3 'Number of rows
B=2 'Number of columns
DIM ARRAY[A,B] 'The first one defines the # of rows, the second one the # of columns
RESTORE @TESTDATA
FOR I=0 TO A-1
FOR J=0 TO B-1
READ C
ARRAY[I,J]=C 'The first read is in position 0,0 then 0,1 inside the array. After that it goes into the first loop again and continues with the next row.
NEXT
NEXT
FOR I=0 TO A-1
FOR J=0 TO B-1
PRINT STR$(ARRAY[I,J]);" "; 'I put a blank space to separate each column
NEXT
PRINT 'I put this empty PRINT to create a new line for each row.
NEXT
END
@TESTDATA
DATA 1, 2
DATA 3, 4
DATA 5, 6
Two-dimensional arrays are really useful when programming 2D games, but it has other uses too.
Source
I used the information from this GameFAQs PetitComputer answer
http://www.gamefaqs.com/ds/663843-petit-computer/answers/331284-using-data-read-and-restore and updated it for SmileBASIC and added my own commentary.