EXPAND

#### Search Results

Search

# EXPAND

`EXPAND` |  | dynamic-clause |  | [`GIVING` operand5]
array-clause

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

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

## Funktion

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:

- Dynamische Variablen benutzen

- Hauptspeicherplatz für eine dynamische Variable zuweisen/freigeben

- X-Arrays

- Speicherverwaltung von X-Gruppen-Arrays

## 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 | 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 `EXPAND DYNAMIC VARIABLE` können Sie die Länge des aktuell zugewiesenen Speicherplatzes einer dynamischen Variable (operand1) auf den mit operand2 angegebenen Wert erweitern. 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 `EXPAND ARRAY` können Sie Anzahl der Ausprägungen des X-Arrays (operand3) auf die mit `(dim[,dim[,dim]])` angegebene Ober- und Untergrenze erweitern. 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` `operand4` | 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.

### DYNAMIC-Klausel

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

### Array-Klausel

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

- Speicherverwaltung von X-Arrays

- Speicherverwaltung von X-Gruppen-Arrays

### Dimension

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.

### On this page

- Funktion
- Syntax-Beschreibung