I am working on a custom component that needs an external array.
This array is a 16 X20 byte array.
I there a way to initialize this array upon creation?
RapidQ allows :
defbyte QTIL311ARRAY(0 to 15 , 0 to 19) = { _
0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,0, _
0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,1,1, _
1,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,0, _
1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1, _
1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,0, _
0,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,0, _
1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0, _
0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0, _
0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1, _
1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, _
0,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,1,1, _
1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0, _
1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1, _
1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0 _
}
Is there something in fnx?
Initializing arrays
Re: Initializing arrays
Hello Bob.
Here is a program that will initialize the array.
The MemCopy function is used to copy the data in the string arrays to the byte array.
Eric
' Initializing arrays
'
' RapidQ example
'
' defbyte QTIL311ARRAY(0 to 15 , 0 to 19) = { _
' 0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,0, _
' 0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
' 1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,1,1, _
' 1,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,0, _
' 1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1, _
' 1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,0, _
' 0,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,0, _
' 1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
' 0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0, _
' 0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0, _
' 0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1, _
' 1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, _
' 0,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,1,1, _
' 1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0, _
' 1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1, _
' 1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0 _
' }
'
Dim QTIL311ARRAY(16,20) as Byte
Dim QData(20) as String
Dim Q0 as String
DIM Q1 as String
Dim i as integer
Dim j as integer
Dim memAddr1 as integer
Dim memAddr2 as integer
Print "Starting"
Q0 = CHR$(0)
Q1 = CHR$(1)
' Columns of data
QData(0) = Q0+Q0+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q1+Q1
QData(1) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(2) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(3) = Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q0+Q0+Q0+Q1+Q0+Q1+Q1
QData(4) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(5) = Q1+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(6) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(7) = Q1+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(8) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(9) = Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1
QData(10) = Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1
QData(11) = Q1+Q1+Q0+Q0+Q1+Q0+Q0+Q1+Q0+Q1+Q1+Q0+Q0+Q1+Q0+Q0
QData(12) = Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(13) = Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(14) = Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(15) = Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(16) = Q0+Q0+Q1+Q1+Q0+Q1+Q0+Q0+Q0+Q0+Q1+Q1+Q0+Q1+Q1+Q1
QData(17) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0
QData(18) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0
QData(19) = Q0+Q1+Q1+Q0+Q1+Q0+Q0+Q1+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q0
' Initialize array
for i=0 to 19
memAddr1 = varptr(QTIL311ARRAY(0,i))
memAddr2 = varptr(QData(i))
memcopy memAddr1, memAddr2, 16
next i
Print
Print "QTIL311ARRAY"
for i=0 to 15
for j=0 to 19
Print " "+Hex$(QTIL311ARRAY(i,j),1);
next j
Print
next i
Print
Print "Finished"
While Inkey$="": Wend
End
Here is a program that will initialize the array.
The MemCopy function is used to copy the data in the string arrays to the byte array.
Eric
' Initializing arrays
'
' RapidQ example
'
' defbyte QTIL311ARRAY(0 to 15 , 0 to 19) = { _
' 0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,0, _
' 0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
' 1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,1,1, _
' 1,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,0, _
' 1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1, _
' 1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,0, _
' 0,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,0, _
' 1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1, _
' 0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0, _
' 0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0, _
' 0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1, _
' 1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, _
' 0,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,1,1, _
' 1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0, _
' 1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1, _
' 1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0 _
' }
'
Dim QTIL311ARRAY(16,20) as Byte
Dim QData(20) as String
Dim Q0 as String
DIM Q1 as String
Dim i as integer
Dim j as integer
Dim memAddr1 as integer
Dim memAddr2 as integer
Print "Starting"
Q0 = CHR$(0)
Q1 = CHR$(1)
' Columns of data
QData(0) = Q0+Q0+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q1+Q1
QData(1) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(2) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(3) = Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q0+Q0+Q0+Q1+Q0+Q1+Q1
QData(4) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(5) = Q1+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(6) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1
QData(7) = Q1+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(8) = Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q0+Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(9) = Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1
QData(10) = Q0+Q0+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0+Q0+Q1+Q1
QData(11) = Q1+Q1+Q0+Q0+Q1+Q0+Q0+Q1+Q0+Q1+Q1+Q0+Q0+Q1+Q0+Q0
QData(12) = Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(13) = Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(14) = Q1+Q0+Q1+Q0+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1
QData(15) = Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q1+Q0+Q1+Q0+Q0
QData(16) = Q0+Q0+Q1+Q1+Q0+Q1+Q0+Q0+Q0+Q0+Q1+Q1+Q0+Q1+Q1+Q1
QData(17) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0
QData(18) = Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q0+Q1+Q1+Q1+Q1+Q0
QData(19) = Q0+Q1+Q1+Q0+Q1+Q0+Q0+Q1+Q0+Q0+Q1+Q0+Q1+Q0+Q1+Q0
' Initialize array
for i=0 to 19
memAddr1 = varptr(QTIL311ARRAY(0,i))
memAddr2 = varptr(QData(i))
memcopy memAddr1, memAddr2, 16
next i
Print "QTIL311ARRAY"
for i=0 to 15
for j=0 to 19
Print " "+Hex$(QTIL311ARRAY(i,j),1);
next j
next i
Print "Finished"
While Inkey$="": Wend
End