RESIZE

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.


Funktion

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:

Syntax-Beschreibung

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 RESIZE DYNAMIC können Sie die Länge des aktuell zugewiesenen Speicherplatzes einer dynamischen Variable (operand1) an den mit operand2 angegebenen Wert anpassen. Weitere Informationen, siehe DYNAMIC-Klausel weiter unten.

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 RESIZE ARRAY wird die Anzahl der Ausprägungen des X-Arrays (operand3) auf die mit (dim[,dim[,dim]]) angegebene Ober- und Untergrenze angepasst. Weitere Informationen siehe Array-Klausel weiter unten.

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

operand4

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 GIVING-Klausel nicht angegeben wird, wird die Natural-Laufzeitfehlerverarbeitung angestoßen, wenn ein Fehler auftritt.

Wenn die GIVING-Klausel angegeben wird, enthält operand5 die Natural-Fehlernummer, wenn vorher ein Fehler aufgetreten ist, oder Null (0) bei Erfolg.

DYNAMIC-Klausel

[SIZE OFDYNAMIC [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.

ARRAY-Klausel

[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.

Beispiel:

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:

Dimension

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.