Mit der Funktion sdflev können Sie auf ein Operanden-Array positionieren, das zu einer Strukturbeschreibung gehört (siehe Aufbau des normierten Übergabebereichs). Alle Funktionen, die auf Daten im normierten Übergabebereich zugreifen, beziehen sich immer auf das zurzeit aktuelle Operanden-Array.
Nach dem Aufruf der Funktion sdfinit ist zunächst auf das Operanden-Array der höchsten Ebene positioniert, d.h auf das Operanden-Array, dessen Operanden mit der Anweisung ADD-OPERAND ...,RESULT-OPERAND-LEVEL=1 in der Syntaxdatei definiert wurden.
Die Funktion sdflev bezieht sich immer auf das zurzeit aktuelle Operanden-Array. Das kann auch das Operanden-Array einer Strukturbeschreibung sein, wenn die Funktion sdflev zuvor schon einmal aufgerufen wurde.
Die Strukturbeschreibung kann auch Element einer Liste sein (die Überprüfung des Operanden mit sdftyp lieferte den Operandentyp „Liste“). In diesem Fall müssen Sie sowohl die Position der Liste im aktuellen Operanden-Array als auch die Position der Strukturbeschreibung in dieser Liste angeben.
Ist die Strukturbeschreibung nicht Element einer Liste, so müssen Sie nur die Position der Strukturbeschreibung im Operanden-Array angeben.
Um zum Operanden-Array der höchsten Ebene zurückzukehren, müssen Sie für die Position den Wert 0 eingeben.
Da die Funktion einen optionalen Parameter hat, gibt es 2 verschiedene Formate.
Format 1
int sdflev (char *area, int pos);
Format 2
int sdflevls (char *area, int pos, int lst);
Beschreibung der Parameter
char *area | Zeiger auf den Puffer, in dem der normierte Übergabebereich angelegt |
int pos | Position der Strukturbeschreibung im aktuellen Operanden-Array |
int lst | ist nur relevant, wenn die Strukturbeschreibung Element einer Liste |
Ergebnis
Die Funktion liefert eine Integerzahl als Ergebnis (siehe "Beispiele").