Programmieren mit dBASE PLUS: Funktionen: sort
Sortiert die Elemente in einem eindimensionalen oder die Zeilen in einem zweidimensionalen Array. Bei Erfolg wird der Wert 1 zurückgegeben, andernfalls ein Fehler generiert.
Syntax
[Bearbeiten]<oReferenz>.sort([<Startelement AusdruckN> [,<Elemente AusdruckN> [, <Reihenfolge AusdruckN>]]])
<oReferenz>
Ein Bezug auf das zu sortierende Array.
<Startelement AusdruckN>
Bei einem eindimensionalen Array die Nummer des Elements in , mit dem die Sortierung begonnen wird. In einem zweidimensionalen Array die Nummer (Index) der Spalte, nach der sortiert werden soll. Wird dieser Parameter nicht angegeben, beginnt die Sortierung mit dem ersten Element bzw. der ersten Spalte des Arrays.
<Elemente AusdruckN>
Bei einem eindimensionalen Array die Anzahl der zu sortierenden Elemente, bei einem zweidimensionalen Array die Anzahl der zu sortierenden Zeilen. Ohne Angabe dieses Parameters werden die Zeilen, beginnend bei der Zeile mit dem Element <Startelement AusdruckN>, bis zur letzten Zeile sortiert. Wird ein Wert für <Elemente AusdruckN> angegeben, müssen Sie auch <Startelement AusdruckN> einen Wert zuweisen.
<Reihenfolge AusdruckN>
Die Reihenfolge, in der die Sortierung durchgeführt wird:
- 0 gibt eine aufsteigende Sortierung an (Standardeinstellung).
- 1 gibt eine absteigende Sortierung an.
Soll ein Wert für <Reihenfolge AusdruckN> angegeben werden, müssen Sie auch Werte für <Elemente AusdruckN> und <Startelement AusdruckN> festlegen.
Eigenschaft von
[Bearbeiten]Beschreibung
[Bearbeiten]Die Sortierung kann nur durchgeführt werden, wenn alle beteiligten Elemente den gleichen Datentyp haben. In einem eindimensionalen Array müssen die zu sortierenden Elemente und in einem zweidimensionalen Array die Elemente in der Spalte, nach der die Zeilen sortiert werden sollen, den gleichen Datentyp besitzen.
sort( ) sortiert die Elemente je nach dem Datentyp des Parameters <Startelement AusdruckN> in alphabetischer, numerischer, zeitlicher oder logischer Reihenfolge. (Bei Strings wird die Sortierreihenfolge durch den aktuellen Sprachtreiber festgelegt.)
Eindimensionale Arrays
Angenommen, Sie erstellen mit folgender Anweisung ein Array:
- aNums = {5, 7, 3, 9, 4, 1, 2, 8}
Die Elemente befinden sich dann in folgender Reihenfolge:
- 5 7 3 9 4 1 2 8
Rufen Sie nun aNums.sort(1, 5) auf, werden die ersten fünf Elemente sortiert. Das Array hat jetzt folgenden Inhalt:
- 3 4 5 7 9 1 2 8
Wird anschließend aNums.sort(5, 2) aufgerufen, werden zwei Elemente mit dem fünften beginnend sortiert, so daß die Array-Elemente jetzt folgendermaßen angeordnet sind:
- 3 4 5 7 1 9 2 8
Zweidimensionale Arrays
Das Sortieren eines zweidimensionalen Arrays mit sort( ) ist dem Sortieren einer Tabelle mit Hilfe des Befehls SORT ähnlich. Die Array-Zeilen entsprechen den Datensätzen und die Array-Spalten den Feldern der Tabelle.
Es werden immer die ganzen Zeilen sortiert, nicht nur die Elemente in der Spalte, in der sich <Startelement AusdruckN> befindet.
Angenommen, Sie erstellen das Array aInfo mit folgendem Inhalt:
Sep 15 1965 | 7 | A |
Dec 31 1965 | 4 | D |
Jan 19 1945 | 8 | C |
May 2 1972 | 2 | B |
Rufen Sie dann aInfo.sort(1) auf, werden alle Zeilen des Arrays, beginnend mit Element Nummer 1, sortiert. Die Sortierung erfolgt nach den Datumswerten in der ersten Spalte, da Element 1 ein Datum enthält. Das Ergebnis sehen Sie in der folgenden Abbildung.
(Bild 1 einfügen)
Rufen Sie anschließend aInfo.sort(5, 2) auf, werden ab Element 5 (mit dem Wert 7) zwei Zeilen sortiert. Die Sortierung der zweiten und dritten Zeile erfolgt dabei anhand der Zahlen in der zweiten Spalte. Das Ergebnis sehen Sie in der folgenden Abbildung.
(Bild 2 einfügen)