RESIZE
|
|
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: EXPAND | REDUCE
Gehört zur Funktionsgruppe: Speicherverwaltungskontrolle für dynamische Variablen/X-Arrays.
Das Statement RESIZE dient dazu, Folgendes anzupassen:
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 | 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 |
operand1
|
Zu verändernde dynamische Variable:
operand1 ist die dynamische Variable, für die die zugewiesene Länge angepasst werden soll. |
operand2
|
Neue Längenangabe:
operand2 dient dazu, die neue Länge der dynamischen Variable anzugeben. 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 |
operand3
|
X-Array-Name:
operand3 ist das X-Array. Die Ausprägungen des X-Arrays können erweitert oder verringert werden. Die Index-Notation des Arrays ist optional. Als Index-Notation ist für jede Dimension nur die Stern-Notation (*) für den vollständigen Bereich zulässig. |
dim
|
X-Array-Ober- und Untergrenze:
Die Notation für die Ober- und Untergrenze (operand4 oder Stern-Notation), auf die das X-Array erweitert werden soll, wird hier angegeben. Wenn der aktuelle Wert der Ober- oder Untergrenze verwendet werden soll, kann ein Stern (*) anstatt operand4 angegeben werden. Weitere Informationen, siehe Dimension weiter unten. |
GIVING
operand5
|
GIVING-Klausel:
Wenn die Wenn die |
[SIZE OF] DYNAMIC [VARIABLE]
operand1
TO
operand2
|
Mit dem Statement RESIZE DYNAMIC können Sie die Länge des
aktuell zugewiesenen Speicherplatzes einer dynamischen Variable
(operand1) an den mit
operand2 angegebenen Wert anpassen.
Wenn Sie das RESIZE-Statement benutzen, wird die Anzahl
der Ausprägungen an die erforderlichen Werte angepasst, ungeachtet der
Tatsache, ob die Anzahl der Ausprägungen erhöht oder verringert werden
muss.
[AND RESET] [OCCURRENCES OF] ARRAY
operand3
TO (dim[,dim[,dim]])
|
Mit dem Statement RESIZE ARRAY wird die Anzahl der
Ausprägungen des X-Arrays (operand3) auf die mit
TO (dim[,dim[,dim]])
angegebene Ober- und Untergrenze angepasst, wobei jedes
dim eine mittels der im Folgenden
beschriebenen Syntax definierte Dimension ist.
Die RESET-Option setzt 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 größenmäßig angepassten (neuen) Ausprägungen werden
zurückgesetzt.
Eine in einem RESIZE-Statement benutzte Ober- und
Untergrenze muss genau mit der betreffenden, für das Array definierten Ober-
und Untergrenze identisch sein.
DEFINE DATA LOCAL
1 #a(I4/1:*)
1 #g(1:*)
2 #ga(I4/1:*)
1 #i(i4)
END-DEFINE
...
*/ resizing #a (1:10)
RESIZE ARRAY #a TO (1:10) /* #a is resized to
RESIZE ARRAY #a TO (*:10) /* 10 occurrences.
/* resizing #ga (1:10,1:20)
RESIZE ARRAY #g TO (1:10) /* 1st dimension is set to (1:10)
RESIZE ARRAY #ga TO (*:*,1:20) /* 1st dimension is dependent and
/* therefore kept with (*:*)
/* 2nd dimension is set to (1:20)
RESIZE ARRAY #a TO (5:10) /* This is rejected because the lower index
/* must be 1 or *
RESIZE ARRAY #a TO (#i:10) /* This is rejected because the lower index
/* must be 1 or *
RESIZE 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 die Ober- und Untergrenze
(operand4 oder Stern-Notation), auf die das X-Array
erweitert werden soll, wird hier angegeben. Wenn der aktuelle Wert der Ober-
oder Untergrenze benutzt werden soll, kann ein Stern (*) anstatt von
operand4 angegeben werden. An Stelle von
*:* können Sie auch einen einzelnen Stern angeben.
Die Anzahl der Dimensionen
(dim) muss genau mit der definierten
Anzahl der Dimensionen des X-Arrays (1, 2 oder 3) übereinstimmen.