Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SIZE( ) Größe zusammengesetzter Variablen abfragen

&pagelevel(3)&pagelevel

Anwendungsgebiet: Variablenzugriff (Variableneigenschaften)

Die Funktion SIZE( ) fragt ab, aus wie vielen Elementen die angegebene Variable besteht. SIZE( ) kann auf Arrays, Listen und Strukturen angewendet werden.

In Verbindung mit der Funktion NEXT-VARIABLE-NAME( ) kann das Ergebnis von SIZE( ) zum Beispiel als Schleifenzähler verwendet werden, wenn der Aufbau von zusammengesetzten Variablen analysiert wird.

Format

SIZE( )

VARIABLE-NAME = string_ausdruck

Ergebnistyp

INTEGER

Eingabeparameter

VARIABLE-NAME = string_ausdruck
Bezeichnet eine Variable (Array, Liste oder Struktur). Der Variablenname muss in Hochkommata eingeschlossen werden, wenn man ihn direkt (als Literal) angeben will (siehe dazu das folgende Beispiel sowie das Beispiel bei IS-DECLARED( ) ).

Ergebnis

Zahl der Elemente, aus denen die Variable „string_ausdruck“ besteht.

0
Der Wert „0“ wird in folgenden Fällen zurückgegeben:

  • „string_ausdruck“ enthält kein Element.

  • „string_ausdruck“ bezeichnet keine zusammengesetzte Variable, oder es gibt keine zusammengesetzte Variable mit diesem Namen.

Fehlermeldung

SDP1101  SYNTAX-FEHLER IM VARIABLEN-NAMEN

Beispiel

In der aktuellen Task wurde bereits taskglobal eine Listenvariable VARLIST angelegt und initialisiert. In der aktuellen Prozedur darf VARLIST genau 10 Elemente haben.

/IF SIZE('VARLIST') > 10
/  WRITE-TEXT 'zu viele Elemente'
/  FOR I = *LIST(VARLIST)
/    SHOW-VARIABLE I
/  END-FOR
/  GOTO ZUVIEL
/ELSE
/  ZAEHL = SIZE('VARLIST')
/  WHILE ZAEHL < 10
/    VARLIST = ZAEHL+1, WRITE-MODE = *EXTEND
/    ZAEHL = ZAEHL+1
/  END-WHILE
/END-IF
...
/ZUVIEL: "Fehlerbehandlung > 10 Listenelemente"
...

In der ersten Zeile wird die Größe der Listenvariablen VARLIST geprüft. Wenn diese mehr als 10 Elemente enthält, wird der Inhalt aller Elemente über eine FOR-Schleife ausgegeben und der Prozedurlauf mit der Fehlerbehandlung ZUVIEL fortgesetzt.
Wenn VARLIST nicht mehr als 10 Elemente enthält, wird der ELSE-Zweig des IF-Blocks abgearbeitet, der in einer WHILE-Schleife Elemente an VARLIST anhängt, bis VARLIST genau 10 Elemente enthält. Der Prozedurlauf wird dann mit dem Kommando fortgesetzt, das auf das Kommando END-IF folgt.