Deklarieren von Array-Variablen (Crystal-Syntax)

Sie können Array-Variablen deklarieren, indem Sie nach dem Typnamen das Schlüsselwort Array eingeben.

//Deklarieren Sie x als globale Variable des Zahlen-Array-Typs.
Global NumberVar Array x := [10 , 20, 30];
//Kosten ist eine globale Variable des Währungsarray-Typs.
//Sie ist automatisch global, da der Geltungsbereich (Lokal, Global oder Freigegeben) nicht festgelegt wurde.
CurrencyVar Array cost := [$19.95, $79.50, $110.00,
$44.79, $223.99];
//ZahlTage ist eine globale Variable des Datumsarraytyps.
Global DateVar Array payDays := [CDate(1999, 5, 15),
CDate(1999, 5, 31)];
//y ist eine freigegebene Variable des Zeichenfolgebereichs-Arraytyps.
Shared StringVar Range Array y := ["A" To "C",
"H" To "J"];
//Tage ist eine lokale Variable des Zeichenfolgen-Arraytyps.
Local StringVar Array days;
days := ["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"];

Zuweisen von Werten zu den Elementen eines Arrays

Sie können den Elementen eines Arrays Werte zuweisen und die Werte der Elemente auch für andere Berechnungen verwenden:

StringVar Array x := ["hello", "bye", "again"];
x [2] := "once"; // x == ["hello", "once", "again"]
//Wenn der folgende Ausdruck nicht auskommentiert wäre, würde er eine Fehlermeldung auslösen, da das Array die Größe 3 hat.
//Die Formel gibt die Zeichenfolge "HALLO" zurück.
UpperCase (x [1])

Mit Hilfe der Schlüsselwörter Redim und Redim Preserve kann die Größe eines Arrays geändert werden, wenn zusätzliche Informationen hinzugefügt werden sollen. Durch Redim wird zuerst der vorherige Inhalt des Arrays gelöscht, bevor seine Größe geändert wird, während durch Redim Preserve der vorherige Inhalt beibehalten wird.

Local NumberVar Array x;
Redim x [2]; // x = [0, 0]
x [2] := 20; // x = [0, 20]
Redim x [3]; // x = [0, 0, 0]
x [3] := 30; // x = [0, 0, 30]
Redim Preserve x [4]; // x = [0, 0, 30, 0]
"finished"
Local StringVar Array a;
Redim a [2];
a[1] := "good";
a[2] := "bye";
a[1] & a[2] //Die Formel gibt die Zeichenfolge "Auf Wiedersehen" zurück

Arrays und For-Schleifen

Arrays werden häufig in For-Schleifen verwendet. Im folgenden Beispiel wird das Array [10, 20, 30, ..., 100] erstellt und anschließend in einer For-Schleife verwendet. Die Formel gibt die Zahl  20 zurück.

Local NumberVar Array b;
Redim b[10];
Local NumberVar i;
For i := 1 To 10 Do
(
b[i] := 10 * i
);
b [2]