Die Array-Schleife erlaubt es mittels einer Reihe von Parametern einen Array in beliebiger Richtung zu durchlaufen und dabei einen beliebigen Teilausschnitt zu wählen.
Parameter:
- Arrayname: Der Name des Arrays aus dem gelesen werden soll.
- Lesemodus: (optional) Die Art des Durchlaufs; der Array kann entweder zeilen- oder spaltenweise gelesen werden. Standard: Zeilenweise.
- Zeilensortierung: (optional) Gibt an, ob die Zeilenindizes untereinander absteigend oder aufsteigend sortiert werden sollen. Standard: aufsteigend.
- Spaltensortierung: (optional) Gibt an, ob die Spaltenindizes untereinander absteigend oder aufsteigend sortiert werden sollen. Standard: aufsteigend.
- von Zeile: (optional) wenn angegeben, berücksichtigt nur die Werte ab dem angegebenen Zeilenindex (inklusive).
- bis Zeile: (optional) wenn angegeben, berücksichtigt nur die Werte bis zum angegebenen Zeilenindex (inklusive).
- von Spalte: (optional) verhält sich analog zum Parameter „Von Zeile“ für die Spaltenwerte.
- bis Spalte: (optional) Selbes Verhalten wie für „Bis Zeile“ für Spaltenwerte.
- Variable für Spaltenindex: (optional) Die Variable in der der Wert für den aktuellen Spaltenindex geschrieben wird.
- Variable für Zeilenindex: (optional) Die Variable, die den Wert für den aktuellen Zeilenindex hält.
- Variable für Wert: (optional) Diese Variable hält den Wert, der sich an der aktuell durchlaufenen Stelle befindet.
Die Arrayschleife hat 3 Abschnitte:
Gruppenwechsel-Anfang: Wenn der Lesemodus "Zeilenweise" ist, werden die nachfolgenden Kommandos beim Zeilenanfang durchlaufen, oder technisch ausgedrückt, beim Zeilen-Index-Wechsel. Bei dem Lesemodus "Spaltenweise" erfolgt der Durchlauf beim Spaltenindex-wechsel.
In diesem Abschnitt können z.B. Feldinhalte geleert werden.
Schleifendurchlauf: Für jede gesetzte Zelle werden die nachfolgenden Kommandos durchlaufen. Wenn eine Zelle nicht gesetzt wurde, wird diese ignoriert.
Gruppenwechsel: Bei der letzten Zelle der Zeile bei Lesemodus "Zeilenweise" werden die nachfolgenden Kommandos durchlaufen.
Nachdem alle Zellen durchlaufen wurden, können in diesem Abschnitt z.B. die ganzen Zeilen/Spalten verarbeitet werden.
Die Schleife durchläuft alle vorhandenen Datensätze, das heißt, sie überspringt nicht vorhandene Datensätze. Im Gegensatz zum „Array-Wert lesen“-Kommando, welches eine leere Zeichenkette im Falle einer nicht existenten Zeilen-Spalten-Kombination retourniert, wird die Schleife nie auf diese Kombination laufen und daher nicht retournieren.
Beispiel:
Array definieren Adressen Zeichenkette (String), alfabetische Sortierung Zahl, numerische Sortierung
Array-Wert setzen Adressen Name 1002 Bregenzer Festspiele
Array-Wert setzen Adressen Land_PLZ_Ort 1002 AT-6900 Bregenz
Array-Wert setzen Adressen Name 1001 VISION-FLOW Software GmbH
Array-Wert setzen Adressen Strasse 1001 Riedgasse 11
Array-Wert setzen Adressen Land_PLZ_Ort 1001 AT-6850 Dornbirn
Datei schreiben meineAdressdatei.csv
Array-Schleife Adressen Zeilenweise $Spaltenname $Adressnummer $Zelleninhalt
Gruppenwechsel-Anfang
Feld setzen (temporär) $Name
Feld setzen (temporär) $Strasse
Feld setzen (temporär) $Land_PLZ_Ort
Schleifendurchlauf
Entscheidungsgruppe
Wenn $Spaltenname = Name Name
Wenn $Spaltenname = Strasse Strasse
Wenn $Spaltenname = Land_PLZ_Ort Land_PLZ_Ort
Wenn $Spaltenname ist alphanumerisch allgemein allgemein
Verzweigungen
bei Name
Feld setzen (temporär) $Name $Zelleninhalt
bei Strasse
Feld setzen (temporär) $Strasse $Zelleninhalt
bei Land_PLZ_Ort
Feld setzen (temporär) $Land_PLZ_Ort $Zelleninhalt
bei allgemein
Feld setzen (temporär) $flexiblerFeldname LOCAL: $Spaltenname
Feld setzen variabler Feldname $flexiblerFeldname $Zelleninhalt
sonst
Ende Entscheidungsgruppe
Gruppenwechsel
Daten schreiben in Datei $Adressnummer ; $Name ; $Strasse ; $Land_PLZ_Ort
Array-Schleife Ende
Datei schreiben-Ende
Das Ergebnis in der Datei temp/meine Adressdatei.csv hat folgenden Inhalt.
1001;VISION-FLOW Software GmbH;Riedgasse 11;AT-6850 Dornbirn
1002;Bregenzer Festspiele;;AT-6900 Bregenz
