Ausgangswerte/Konstanten-Werte für ein Array

Für ausgewählte Ausprägungen:

../graphics/cbo4.gif

(

index[:index]
V

, ../graphics/dot3.gif3 )

../graphics/cbo4.gif

 

FULL LENGTH
LENGTH n

<character-string, ../graphics/dot3.gif >

../graphics/cbc4.gif

../graphics/cbc4.gif

 
<

constant
system-variable

, ../graphics/dot3.gif >  

../graphics/dot3.gif

Für alle Ausprägungen:

ALL

../graphics/cbo5.gif

 

FULL LENGTH
LENGTH n

<character-string>

../graphics/cbc6.gif

<

constant
system-variable

>

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Mit der Option array-init-definition definieren Sie die Ausgangswerte oder die Konstanten-Werte für ein Array.

Anmerkung:
Wenn in der Option variable-definition das Schlüsselwort INIT für die Initialisierung benutzt wurde, kann der Wert von einem Statement geändert werden, das den Inhalt einer Variable beeinflusst. Wenn das Schlüsselwort CONST für die Initialisierung benutzt wurde, wird jeder Versuch, den Wert zu ändern, vom Compiler zurückgewiesen.

Siehe auch Felder definieren im Leitfaden zur Programmierung, und zwar die folgenden Abschnitte:

Dieses Dokument behandelt folgende Themen:


Einschränkung

Für ein redefiniertes Feld ist eine array-init-definition nicht zulässig.

Syntax-Beschreibung

Syntax-Element-Beschreibung:

Syntax-Element Beschreibung
ALL
ALL-Option:

Alle Ausprägungen in allen Dimensionen des Arrays werden mit dem gleichen Wert initialisiert.

Die ALL-Option kann mit keiner anderen Initialisierungsdefinition kombiniert werden.

index
Index-Option:

Die im index angegebenen Ausprägungen des Arrays werden initialisiert.

Wenn Sie einen index angeben, dürfen Sie mit constant nur einen einzigen Wert angeben (constant oder system-variable), der allen angegebenen Ausprägungen zugewiesen wird.

Beispiele:

DEFINE DATA LOCAL                                                   
1 #FLD1 (A4/1:4)     INIT (1:3) <'A'>  /* A fills occurrences (1:3)
1 #FLD2 (A4/1:4)     INIT (*)   <'B'>  /* B fills all occurrences
1 #FLD3 (A4/1:2,1:4) INIT (2,3) <'C'>  /* C fills occurrence (2,3)
END-DEFINE
V
V-Notation:

Die spezielle Index-Notation V wird verwendet, um eine konsekutive Folge von Array-Ausprägungen mit individuellen Werten zu füllen (constant oder system-variable).

Sie können die V-Notation nur für eine Dimension eines Array angeben. Die Anzahl der zur Verfügung gestellten Werte darf die Anzahl der Ausprägungen der angegebenen Dimension übersteigen.

Sie können die V-Notation bei einem eindimensionalen Array weglassen, weil dann der V-Index standardmäßig verwendet wird.

Das folgende Beispiel zeigt, welche Werte welche Ausprägungen füllen, wenn V benutzt wird:

DEFINE DATA LOCAL
1 #FLD4 (A4/1:3)     INIT (V)   <'A','B'>     /* A fills (1) B fills (2)
1 #FLD5 (A4/1:2,1:3) INIT (1,V) <'C','D'>     /* C, D fill (1,1:2)
                          (2,V) <'F','G','H'> /* F, G, H fill (2,1:3)
END-DEFINE
constant
Konstantenwert-Option:

Die Konstante (Wert), mit der das Array initialisiert werden soll.

Ausprägungen, für die Sie keine Werte angeben, werden mit einem Standardwert initialisiert.

In einer Liste aufeinander folgender Ausprägungen können Sie einzelne Ausprägungen überspringen, indem Sie nur Kommas (,) angeben. Sie müssen aber die Liste mit einem bestimmten Wert für die letzte Ausprägung abschließen.

Weitere Informationen zur Definition von Konstanten finden Sie im Abschnitt Benutzerkonstanten im Leitfaden zur Programmierung.

Anmerkung:
Multiple Konstantenwerte/Systemvariablen müssen entweder durch das Input-Begrenzungszeichen (wie mit dem Session-Parameter ID angegeben) oder durch ein Komma (,) voneinander abgetrennt werden. Falls in der Werteliste Zahlen vorhanden sind und darin ein Komma als Dezimalstellenzeichen (mit dem Session-Parameter DC) definiert ist, müssen Sie entweder das Komma vom Wert durch ein zusätzliches Leerzeichen abtrennen oder das Eingabebegrenzungszeichen benutzen.

Beispiel mit Input-Begrenzungszeichen-Einstellung ID=; und DC=,:

DEFINE DATA LOCAL
1 #FLD1 (A4/1:3)   INIT <'A',,'C'>
1 #NUM1 (N4,2/1:3) INIT <1 , 2 , 3>
1 #NUM2 (N4,2/1:3) INIT <1;2;3>
END-DEFINE
system-variable
Systemvariablenwert-Option:

Als Ausgangswert können Sie einem Array auch den Wert einer Natural-Systemvariablen zuweisen.

Siehe auch die Anmerkung zur Konstantenwert-Option.

FULL LENGTH <character-string>

LENGTH n <character-string>

Zeichenketten-Option für alphanumerische Variablen/Unicode-Variablen:

Bei einer Variablen mit Natural-Datenformat A oder U kann eine Zeichenkette (character-string, z.B. 'ABC') als Ausgangswert benutzt werden, der das variable Feld ganz oder teilweise füllt.

Eine Zeichenkette (character-string) ist eine Konstante mit Natural-Datenformat A oder U, siehe Alphanumerische Konstanten and Unicode-Konstanten im Leitfaden zur Programmierung.

FULL LENGTH-Option:

Bei der FULL LENGTH-Option wird eine Zeichenkette (character-string) wiederholt in die angegebene Array-Ausprägung verschoben, bis das Feld vollständig gefüllt ist.

LENGTH Option:

Bei der LENGTH n-Option wird eine bestimmte Zeichenkette (character-string) wiederholt in die angegebene Array-Ausprägung verschoben, bis die ersten n Stellen des Feldes gefüllt sind.

Im folgenden Beispiel wird gezeigt, mit welchen Werten welche Ausprägungen gefüllt werden:

DEFINE DATA LOCAL
1 #FLD1 (A6/1:3) INIT ALL FULL LENGTH <'X'>    /* XXXXXX in all occ.
1 #FLD2 (A6/1:3) INIT ALL   LENGTH 5  <'NO'>   /* NONON in all occ.
1 #FLD3 (A6/1:3) INIT (1:2) LENGTH 4  <'AB'>   /* ABAB in occ (1:2)
1 #FLD4 (A6/1:3) INIT (V) FULL LENGTH <'X','Y'>/* XXXXXX in occ. (1),
                                               /* YYYYYY in occ. (2)
END-DEFINE

Innerhalb einer array-init-definition dürfen Sie nur FULL LENGTH oder LENGTH n angeben; beide Notation dürfen nicht gemischt verwendet werden.

Weitere Beispiele für die Zuweisung von Ausgangswerten zu Arrays siehe Beispiel 2 — DEFINE DATA LOCAL (Array-Definition/Initialisierung).