EXPAND
|
dynamic-clause | [GIVING
operand5]
|
||
array-clause |
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: REDUCE
| RESIZE
Gehört zur Funktionsgruppe: Speicherverwaltungskontrolle für dynamische Variablen/X-Arrays
Das Statement EXPAND
dient dazu,
die zugewiesene Länge einer dynamischen Variable (dynamic-clause) oder
die Anzahl der Ausprägungen von X-Arrays (array-clause)
Weitere Informationen entnehmen Sie den folgenden Abschnitten im Leitfaden zur Programmierung:
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | A | U | B | nein | nein | ||||||||||||||
operand2 | C | S | I | nein | nein | ||||||||||||||||
operand3 | A | G | A | U | N | P | I | F | B | D | T | L | C | G | O | ja | nein | ||||
operand4 | C | S | N | P | I | nein | nein | ||||||||||||||
operand5 | S | I4 | nein | ja |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
dynamic-clause
|
DYNAMIC-Klausel:
Mit dem Statement Siehe DYNAMIC-Klausel weiter unten. |
operand1
|
Zu erweiternde Variable:
operand1 ist die dynamische Variable, für die die zugewiesene Länge erweitert werden soll. |
operand2
|
Erweiterungswert:
operand2 dient dazu, die Länge anzugeben, auf die die dynamische Variable erweitert werden soll. Der angegebene Wert muss eine nicht negative, numerische Ganzzahl-Konstante oder eine Variable des Typs Integer4 (I4) sein. |
array-clause
|
Array-Klausel:
Mit dem Statement Siehe Array-Klausel weiter unten. |
operand3
|
Zu erweiterndes X-Array:
operand3 ist das X-Array, für das die Anzahl der Ausprägungen erweitert werden kann. Die Index-Notation des Arrays ist optional. Als Index-Notation ist nur die Stern-Notation (*) für den vollständigen Bereich für jede Dimension zulässig. |
dim
|
Ober-/Untergrenze der Erweiterung:
Die Notation für die Ober- und Untergrenze (operand4 oder Stern-Notation), auf die das X-Array erweitert werden sollte, wird hier angegeben. Wenn der aktuelle Wert für die Ober- oder Untergrenze benutzt werden sollte, kann ein Stern-Notation (*) anstatt operand4 angegeben werden. Siehe Dimension weiter unten. |
GIVING
operand5
|
GIVING-Klausel
Wenn diese Klausel nicht angegeben wird, wird die Natural-Laufzeitfehlerverarbeitung angestoßen, wenn ein Fehler auftritt. Wenn die Klausel angegeben wird, enthält operand5 die Natural- Fehlernummer, wenn vorher ein Fehler aufgetreten ist, oder Null (0) bei Erfolg. |
[SIZE OF ] DYNAMIC [ VARIABLE ] operand1
TO operand2
|
Mit dem Statement EXPAND DYNAMIC VARIABLE
können Sie die
Länge des aktuell zugewiesenen Speicherplatzes einer dynamischen Variable
(operand1) auf den mit
operand2 angegebenen Wert erweitern.
Ist operand2 kleiner als die aktuell
zugewiesene Länge von operand1, wird das Statement
für diese dynamische Variable ignoriert. Die aktuell benutzte Länge (*LENGTH
)
der dynamischen Variable wird nicht geändert.
[AND RESET ] [OCCURRENCES OF ] ARRAY
operand3 TO
(dim[,dim
[,dim]])
|
Mit dem Statement EXPAND ARRAY
können Sie die Anzahl der
Ausprägungen des X-Arrays (operand3) auf die mit
TO
(dim
[,dim[,dim]])
angegebene Ober- und Untergrenze erweitern, wobei jede Angabe von
dim
sich auf eine Dimension bezieht,
die mittels der weiter unten beschriebenen Syntax definiert wird.
Mit der RESET
-Option setzen Sie alle Ausprägungen des
größenmäßig angepassten X-Arrays auf ihren standardmäßigen Nullwert zurück. Als
Voreinstellung (keine RESET
-Option) werden die Direktwerte
beibehalten und die erweiterten (neuen) Ausprägungen zurückgesetzt.
Verwenden Sie das EXPAND
-Statement, ist es nur möglich,
die Anzahl der Ausprägungen zu erhöhen. Wenn die erforderliche Anzahl kleiner
ist als die aktuell zugewiesene Anzahl der Ausprägungen, wird dies einfach
ignoriert.
Eine bei einem EXPAND
-Statement eingesetzte Ober- oder
Untergrenze muss genau der betreffenden, für das Array definierten Ober- oder
Untergrenze entsprechen.
Beispiel:
DEFINE DATA LOCAL 1 #a(I4/1:*) 1 #g(1:*) 2 #ga(I4/1:*) 1 #i(i4) END-DEFINE ... /* allocating #a(1:10) EXPAND ARRAY #a TO (1:10) /* #a is allocated 10 EXPAND ARRAY #a TO (*:10) /* occurrences. /* allocating #ga(1:10,1:20) EXPAND ARRAY #g TO (1:10) /* 1st dimension is set to (1:10) EXPAND ARRAY #ga TO (*:*,1:20) /* 1st dimension is dependent and /* therefore kept with (*:*) /* 2nd dimension is set to (1:20) EXPAND ARRAY #a TO (5:10) /* This is rejected because the lower index /* must be 1 or * EXPAND ARRAY #a TO (#i:10) /* This is rejected because the lower index /* must be 1 or * EXPAND ARRAY #ga TO (1:10,1:20) /* (1:10) for the 1st dimension is rejected /* because the dimension is dependent and /* must be specified with (*:*).
Weitere Informationen siehe
Jede der in der Array-Klausel
angegebenen Dimensionen (dim
) wird
mittels der folgenden Syntax definiert:
operand4 | :
|
operand4 | ||||
* | * |
Die Notation für Ober- und Untergrenzen
(operand4 oder Stern-Notation), auf die das X-Array
erweitert werden sollte, wird hier angegeben. Wenn der aktuelle Wert der Ober-
oder Untergrenze benutzt werden soll, kann ein Stern (*) anstelle von
operand4 angegeben werden. Anstatt *:*
können Sie auch einen einzelnen Stern verwenden.
Die Anzahl der Dimensionen
(dim
) muss genau mit der definierten
Anzahl der Dimensionen des X-Arrays (1, 2 oder 3) übereinstimmen.
Wenn die Anzahl der Ausprägungen für eine angegebene Dimension kleiner ist als die Anzahl der aktuell zugewiesenen Ausprägungen, wird die Anzahl der Ausprägungen nicht für die betreffende Dimension aktualisiert.