Version 11 (Geändert)
Es gibt folgende Arten von Array-Befehlen:
Befehl | Erstellt ein Array oder passt seine Größe an von: |
ARRAY INTEGER | 2 Byte Werten vom Typ Ganzzahl |
ARRAY LONGINT | 4 Byte Werten vom Typ Lange Ganzzahl (*) |
ARRAY REAL | Werten vom Typ Zahl |
ARRAY TEXT | Werten vom Typ Text (bis zu 2 GB Text pro Element) |
ARRAY STRING | Im Unicode Modus obsolet (**) |
ARRAY DATE | Werten vom Typ Datum |
ARRAY BOOLEAN | Werten vom Typ Boolean |
ARRAY PICTURE | Werten vom Typ Bild |
ARRAY POINTER | Werten vom Typ Zeiger |
Jeder dieser Befehle kann ein- oder zweidimensionale Arrays erstellen oder in der Größe anpassen. Weitere Informationen zu zweidimensionalen Arrays finden Sie im Abschnitt Zweidimensionale Arrays.
(*) Über Longint Arrays lassen sich Daten vom Typ Zeit verwalten. Um ein Array vom Typ Zeit in einem Formular anzuzeigen, wenden Sie auf das zugewiesene Formularobjekt das Anzeigeformat &/x an, wobei x die Nummer des Formats aus der Liste Zeitformate ist. Zum Beispiel zeigt &/4 das Format Hour Min an.
(**) Arrays vom Typ Text und String arbeiten mit demselben Elementtyp: Zeichen.
Im Unicode Modus (Standardmodus für Datenbanken, die mit 4D Version 11 erstellt werden) gibt es keinen Unterschied zwischen Arrays vom Typ Text und String. Der Parameter strLen im Befehl ARRAY STRING wird ignoriert. In diesem Kontext empfiehlt es sich Arrays vom Typ Text zu verwenden. Der Befehl ARRAY STRING wird nur zur Wahrung der Kompatibilität beibeihalten.
Im Kompatibilitätsmodus (nicht-Unicode) unterscheiden sich die Befehle ARRAY TEXT und ARRAY STRING:
- In einem Array vom Typ Text hat jedes Element eine andere Länge, die Zeichen werden in einem eigenen Teil des Speichers abgelegt. Jedes Element dieses Array kann bis zu 32.000 Zeichen enthalten.
- In einem Array vom Typ String haben alle Elemente dieselbe Länge, (die beim Erstellen des Array im Parameter strLen übergeben wird). Alle Elemente werden der Reihe nach im selben Teil des Speichers abgelegt. Das macht Arrays vom Typ String schneller als Arrays vom Typ Text. String Arrays können jedoch max. 255 Zeichen lang sein.
Weitere Informationen dazu finden Sie im Abschnitt Über Unicode.
Anlegen eines Array vom Typ Ganzzahl mit 10 Elementen:
ARRAY INTEGER(aiAnArray;10)
Anpassen dieses Array auf 20 Elemente:
ARRAY INTEGER(aiAnArray;20)
Anpassen dieses Array auf keine Elemente:
ARRAY INTEGER(aiAnArray;0)
Um auf die Elemente zuzugreifen, schreiben Sie den Tabellennamen, gefolgt vom Indexwert in geschweiften Klammern ({ }). Dieser Wert heißt Elementnummer. Folgender Code fügt fünf Namen in das Array mit Namen atNames ein und zeigt sie dann in Fenstern mit Meldungen an:
ARRAY TEXT (atNames;5) atNames{1} := "Richard" atNames{2} := "Sarah" atNames{3} := "Sam" atNames{4} := "Jane" atNames{5} := "John" For ($vlElem;1;5) ALERT ("Element #"+String($vlElem)+" ist gleich: "+atNames{$vlElem}) End for
Sie können das Element auch über eine Variable vom Typ numerisch ansprechen, z.B. atNames{$vlElem}.
Über eine Schleife (For...End for, Repeat...Until oder While...End while) können kompakte Teile des Code alle oder bestimmte Elemente in einem Array ansprechen.
Arrays und andere Bereiche der 4D Programmiersprache
Auch andere 4D Befehle können Arrays erstellen und damit arbeiten:
Mit den Befehlen SELECTION RANGE TO ARRAY, SELECTION TO ARRAY, ARRAY TO SELECTION und DISTINCT VALUES arbeiten Sie mit Arrays und Datensatzauswahlen.
Objekte vom Typ Listbox basieren auf Arrays; einige Befehle unter dem Thema "List box" arbeiten mit Arrays, z.B. INSERT LISTBOX ROW.
Mit dem Befehl GRAPH erstellen Sie Grafiken und Diagramme über in Tabellen und Arrays gespeicherte Werte.
Version 6 hat eine Reihe neuer Befehle für hierarchische Listen eingeführt. Aus Kompatibilitätsgründen werden jedoch auch die Befehle LIST TO ARRAY und ARRAY TO LIST aus der vorigen Version beibehalten.
Einige Befehle erstellen Arrays in einem Aufruf: FONT LIST, WINDOW LIST, VOLUME LIST, FOLDER LIST, DOCUMENT LIST, GET SERIAL PORT MAPPING, SAX GET XML ELEMENT, etc.
Referenz
ARRAY BOOLEAN, ARRAY DATE, ARRAY INTEGER, ARRAY LONGINT, ARRAY PICTURE, ARRAY POINTER, ARRAY REAL, ARRAY STRING, ARRAY TEXT, Einführung in Arrays, Zweidimensionale Arrays.