EXPAND
|
|
dynamic-clause |
|
[GIVING
operand5]
|
| array-clause |
Dieser Abschnitt 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.