Arrays

Arrays sind verkettete Datentypen gleichen Typs. In Luna können numerische Variablen, Stringvariablen und Strukturen als statisches, eindimensionales Array dimensioniert werden. Statisch bedeutet, dass die Anzahl der Elemente fest vorgegeben wird. Werden mehrere verschiedene Daten je Arrayelement benötigt, kann man Arrays mit Strukturen erstellen.

Um ein Array zu dimensionieren, fügt man bei der Dimensionierung von Variablen eine in Klammern eingefasste Elementanzahl ein. Die Elementanzahl und auch der Zugriff auf einzelne Elemente eines Arrays sind nullbasiert. Das erste Element eines Arrays ist also das Element „0“.

Bei Arrays kann mittels der Eigenschaft Ubound die dimensionierte Elementanzahl gelesen werden:

dim i,a(63) as byte
 
for i=0 to a().Ubound
  [..]
next

Arrayelemente im Arbeitsspeicher werden nach der Deklaration und Dimensionierung (wie alle anderen Variablen im Arbeitsspeicher) mit dem Wert 0, nil oder leer initialisiert. Arrays/Variablen im Eeeprom werden nicht initialisiert.

Beispiel Dimensionierung Arbeitsspeicher

dim a(99) as byte   ' Byte-Array mit 100 Elementen dimensionieren
dim s(2) as string  ' String-Array mit 3 Elementen dimensionieren
 
a(22) = 42          ' Dem 23. Element den Wert 42 zuweisen
Print Str(a(22))    ' Wert des Elements ausgeben
s(0) = "Hallo Welt" ' Dem 1. Element einen Text zuweisen
Print s(0)          ' Wert des Elements ausgeben

Beispiel Dimensionierung Eeprom

eedim a(99) as byte       ' Byte-Array mit 100 Elementen dimensionieren
eedim s[10](2) as string  ' String-Array mit 3 Elementen und je 10 Bytes Länge dimensionieren.
                          ' (Strings im Eeprom sind statisch und benötigen eine Längenangabe)
a(22) = 42                ' Dem 23. Element den Wert 42 zuweisen
Print Str(a(22))          ' Wert des Elements ausgeben
s(0) = "Hallo Welt"       ' Dem 1. Element einen Text zuweisen
Print s(0)                ' Wert des Elements ausgeben