Programmieren mit dBASE PLUS: Klasse Array
Ein Array von Elementen in einer oder mehreren Dimensionen.
Syntax
Bearbeiten[<oReferenz> =] new Array([<Dim1 AusdruckN> [,<Dim2 AusdruckN> ...]])
<oReferenz>
Ein Bezug auf das neue Array-Objekt.
<Dim1 AusdruckN> [,<Dim2 AusdruckN> ...]
Die Anzahl der Elemente in jeder angegebenen Dimension. Werden keine Dimensionen angegeben, wird ein eindimensionales Array mit null Elementen erstellt.
spezielle Eigenschaften
BearbeitenDie folgende Tabelle enthält die Eigenschaften und Methoden der Klasse Array. (Dieser Klasse sind keine Events zugeordnet.)
Eigenschaft | Vorgabe | Beschreibung |
baseClassName | ARRAY | Kennzeichnet das Objekt als Instanz der Klasse Array. |
className | ARRAY | Kennzeichnet das Objekt als Instanz der abgeleiteten benutzerdefinierten Klasse. Wenn keine benutzerdefinierte Klasse existiert, gilt die Voreinstellung von baseClassName. |
dimensions | Die Anzahl der Dimensionen des Arrays. | |
size | 0 | Die Anzahl der Elemente des Arrays. |
spezielle Funktionen/Methoden
BearbeitenMethode | Parameter | Beschreibung |
---|---|---|
add( ) | <Ausdruck> | Vergrößert ein eindimensionales Array um ein Element und weist diesem den angegebenen Wert zu. |
delete( ) | <Position AusdruckN>[,1 / 2] | Entfernt ein Element aus einem eindimensionalen Array oder eine Zeile (1) bzw. Spalte (2) mit Elementen aus einem zweidimensionalen Array-Objekt. Die Größe des Array-Objekts wird dabei nicht geändert. |
dir( ) | [<Dateiauswahl AusdruckZ>] | Speichert Name, Größe, Änderungsdatum, Änderungszeit und DOS-Attribut(e) der angegebenen Dateien in einem Array-Objekt. Nach der Operation wird die Anzahl der Dateien, deren Eigenschaften gespeichert wurden, zurückgegeben. |
dirExt( ) | [<Dateiauswahl AusdruckZ>] | Wie dir( ), jedoch mit kurzem Dateinamen (8.3), Erstellungsdatum, Erstellungszeit und Datum des letzten Zugriffs. |
element( ) | <Zeile AusdruckN> [,<Spalte AusdruckN>] | Gibt die Nummer des Elements mit der angegebenen Zeile und Spalte zurück. |
fields( ) | Speichert die Daten über die Tabellenstruktur der aktuellen Tabelle im Array. | |
fill( ) | <Ausdruck>, <Startelement AusdruckN> [, <Elemente AusdruckN>] | Speichert den angegebenen Wert in einem oder mehreren Array-Elementen. |
getFile( ) | [<filename skeleton expC> [, <title expC> [, <suppress database expL>],[<file types list expC>]]] | Displays a dialog box from which a user can select multiple files. |
grow( ) | 1 | 2 | Bei Übergabe von 1 wird ein Element zu einem eindimensionalen oder eine Zeile zu einem zweidimensionalen Array hinzugefügt. Wird der Wert 2 übergeben, wird eine Spalte zum Array hinzugefügt. |
insert( ) | <Position AusdruckN> [,1 | 2] | Fügt ein Element, eine Zeile (1) oder eine Spalte (2) in ein Array ein, ohne die Größe des Array-Objekts zu ändern (das letzte Element, die letzte Zeile oder Spalte geht dabei verloren). |
resize( ) | <nowiki<Zeilen AusdruckN>[, <Spalten AusdruckN>[, <Werte erhalten>]]</nowiki> | Vergrößert oder verkleinert ein Array-Objekt. Der erste Parameter gibt die neue Zeilenanzahl, der zweite die neue Anzahl Spalten an. Hat der dritte Parameter den Wert Null, wird die Position der aktuellen Werte geändert, bei einem anderen Wert bleiben sie an ihrer Position. |
scan( ) | <Ausdruck>, <Startelement AusdruckN>[, <Elemente AusdruckN>] | Durchsucht ein Array nach dem angegebenen Ausdruck. Bei Erfolg wird die Nummer des ersten übereinstimmenden Elements zurückgegeben, andernfalls -1. |
sort( ) | <Startelement AusdruckN>[, <Elemente AusdruckN>[, 0 | 1 ]] | Sortiert die Elemente eines eindimensionalen Arrays oder die Zeilen eines zweidimensionalen Arrays in aufsteigender (0) bzw. absteigender (1) Reihenfolge. |
subscript( ) | <Element AusdruckN>1 | 2 | Gibt den Zeilen- (1) oder Spaltenindex (2) des Elements mit der angegebenen Nummer zurück. |
resize( ) | <nowiki<Zeilen AusdruckN>[, <Spalten AusdruckN>[, <Werte erhalten>]]</nowiki> | Vergrößert oder verkleinert ein Array-Objekt. Der erste Parameter gibt die neue Zeilenanzahl, der zweite die neue Anzahl Spalten an. Hat der dritte Parameter den Wert Null, wird die Position der aktuellen Werte geändert, bei einem anderen Wert bleiben sie an ihrer Position. |
scan( ) | <Ausdruck>, <Startelement AusdruckN>[, <Elemente AusdruckN>] | Durchsucht ein Array nach dem angegebenen Ausdruck. Bei Erfolg wird die Nummer des ersten übereinstimmenden Elements zurückgegeben, andernfalls -1. |
sort( ) | <Startelement AusdruckN>[, <Elemente AusdruckN>[, 0 | 1 ]] | Sortiert die Elemente eines eindimensionalen Arrays oder die Zeilen eines zweidimensionalen Arrays in aufsteigender (0) bzw. absteigender (1) Reihenfolge. |
subscript( ) | <Element AusdruckN>1 | 2 | Gibt den Zeilen- (1) oder Spaltenindex (2) des Elements mit der angegebenen Nummer zurück. |
Beschreibung
BearbeitenIn einem Array-Objekt werden in einer oder mehreren Dimensionen Elemente gespeichert, auf die mit Hilfe aufeinanderfolgender Zahlen zugegriffen werden kann. Die Anzahl der Elemente wird nur durch den verfügbaren Speicher begrenzt. Sie können auch Array-Objekte mit mehr als zwei Dimensionen erstellen, jedoch arbeiten die meisten Array-Methoden in dBASE Plus nur mit ein- und zweidimensionalen Arrays zusammen. Bei einem zweidimensionalen Array heißt die erste Dimension Zeile und die zweite Dimension Spalte. Mit folgender Anweisung wird beispielsweise ein Array mit 3 Zeilen und 4 Spalten erstellt:
a = new Array( 3, 4 )
Es gibt zwei Möglichkeiten, auf die einzelnen Elemente eines Arrays Bezug zu nehmen: Index oder Elementnummer. Die Indizes (pro Dimension ein Index) geben die Position des Elements in der betreffenden Dimension an. Bei einem zweidimensionalen Array geben sie Zeile und Spalte des Elements an. Die Elementnummer entspricht der Position des Elements im Array. Die Numerierung beginnt mit dem ersten Element und wird dann zuerst in der nächsten Dimension fortgesetzt. Bei einem zweidimensionalen Array ist das erste Element in der ersten Spalte der ersten Zeile enthalten, das zweite Element in der zweiten Spalte der ersten Zeile usw.
Die Anzahl der Dimensionen in einem Array kann mit Hilfe der Eigenschaft dimensions (Eigenschaft kann nur gelesen werden) ermittelt werden. Die Eigenschaft size des Arrays gibt die Anzahl der Elemente an. Um die Anzahl der Zeilen oder Spalten in einem zweidimensionalen Array zu bestimmen, verwenden Sie die Funktion ALEN( ). Es gibt keine interne Möglichkeit, die Größe der Dimensionen über zwei zu bestimmen.
Die Numerierung der Elemente beginnt bei eins. Sie können keine Elemente außerhalb des definierten Element- oder Indexbereichs erstellen. Es ist jedoch möglich, die Dimensionen zu ändern. So besteht beispielsweise ein Array mit 3 Zeilen und 4 Spalten aus zwölf Elementen, die von 1 bis 12 durchnumeriert sind. Die Indizes des ersten Elements sind [1,1] und die des letzten [3,4].
Einige dBL-Methoden benötigen als Parameter die Elementnummer, andere hingegen den Index. Bei ein- oder zweidimensionalen Arrays können Sie mit Hilfe der Methode element( ) die Elementnummer bestimmen, wenn Sie die Indizes kennen. Ist die Elementnummer bekannt, kann mit subscript( ) der Index ermittelt werden.
Array-Elemente können beliebige Datentypen enthalten, auch Objektbezüge auf andere Arrays. Sie können daher verschachtelte Arrays (mehrdimensionale Arrays, die Arrays fester Länge in jeder Dimension enthalten), Stufen-Arrays (verschachtelte Arrays variabler Länge), Arrays von Zuordnungs-Arrays usw. erstellen.
Bei verschachtelten und mehrdimensionalen Arrays befinden sich die Elemente in mehreren Dimensionen oder Ebenen. Verschachteln Sie jedoch Arrays, erstellen Sie separate Array-Objekte, und die Methoden, die mit den Dimensionen eines Array-Objekts arbeiten, können nicht verwendet werden.
Außer dem Erstellen eines Arrays mit new können Sie auch ein eindimensionales Array mit Hilfe der literalen Array-Syntax füllen. Folgende Anweisung erstellt beispielsweise ein Array-Objekt mit den drei Elementen "A", "B" und "C":
a1 = {"A", "B", "C"}
Literale Arrays können auch verschachtelt werden. Geben Sie beispielsweise folgende Anweisung nach der vorherigen an:
a2 = { {1, 2, 3}, a1 }
Sie haben jetzt ein verschachteltes Array erstellt.
Um auf einen Wert in einem verschachtelten Array zuzugreifen, geben Sie die Index-Operatoren hintereinander an. In unserem Beispiel kann mit folgender Anweisung auf das dritte Element des ersten Arrays zugegriffen werden:
x = a2[1][3] // 3
Nur eindimensionale Array-Objekte können null Elemente enthalten. Diese Eigenschaft ist besonders für das dynamische Erstellen von Arrays nützlich. Soll ein Array ohne Elemente erstellt werden, geben Sie new ohne Parameter an:
a0 = new Array( )
Sie können dann später mit Hilfe der Methode add( ) Elemente hinzufügen.