FORALL Element IN Liste
Anweisungen
ENDFOR
oder
FORALL Element IN Liste WHILE (Bedingung)
Anweisungen
ENDFOR
Dem Element werden nacheinander alle Elemente der Liste zugewiesen. In AZUR können Listen vom Typ ZRList, QuantList, Polygon, Layer, Karte, Array, Tupel, Relation, Datenbank, Baum und Intervall durchlaufen werden. Die Elemente von Polygonen sind GeoPoints, die Elemente von Layern sind Polygone und die Elemente von Karten sind Layer. Die Elemente von Baum sind Baum (dessen Kinder). Die Elemente von Tupel sind Strings (dessen Feldnamen). Die Elemente von Intervallen sind Zeitpunkte in einem vorzugebenen Zeitschritt
Wird, wie oben in der zweiten Form, ein WHILE benutzt, dann bricht die Schleife ab, wenn die Bedingung nicht erfüllt ist. Die Bedingung wird jeweils nach der Zuweisung an Element getestet, sodass Element auch in der Bedingung benutzt werden kann.
Arrays werden sortiert durchlaufen. Siehe dazu Abschnitt Arbeiten mit Arrays
Falls die Liste eine Relation ist (aber keine dBase-Relation), kann diese auch nach einem bestimmten Schlüssel sortiert durchlaufen werden. Die Syntax hierfür ist
FORALL Element IN Relation (sortindex)
Anweisungen
ENDFOR
sortindex ist ein String oder ein Ausdruck vom Typ String.
Er enthält den Feldnamen (oder die mit + verketteten Feldnamen) für
den Index. Wenn sortindex mit einem - beginnt, wird
die Relation in umgekehrter Reihenfolge (Große zuerst) durchlaufen. Soll
der Hauptindex rückwärts durchlaufen werden, wird nur ein -
übergeben. Beispiel:
FORALL Element IN Relation ("-")
Anweisungen
ENDFOR
WHILE und Sortierung können auch kombiniert werden.
Die Syntax von FORALL-Schleifen über Intervalle ist:
FORALL Element IN Intervall (dist)
Anweisungen
ENDFOR
zr_liste := OrtQuery ("12345")
FORALL zr IN zr_liste
Print (Parameter (zr))
ENDFOR
bereich := [11.11.77, 11.11.88]
quant_liste := QuantenFolge (zr, bereich)
FORALL q IN quant_liste
Print (YLinks (q))
ENDFOR
lay := ReadLayer ("orte.geo")
FORALL poly IN lay WHILE (Name(poly)#"Aix")
ENDFOR
IF (Name(poly)="Aix")
print ("gefunden")
ENDIF
fokus := [@"1.1.1990 0:00", @"1.1.2020 0:00"]
FORALL zp IN fokus (~"1a")
print (zp)
ENDFOR
toposoft GmbH 31. März 2021