配列用の初期値/定数値

選択したオカレンス:

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

すべてのオカレンス:

ALL

../graphics/cbo5.gif

 

FULL LENGTH
LENGTH n

<character-string>

../graphics/cbc6.gif

<

constant
system-variable

>

構文図で使用されている記号については、「構文記号」を参照してください。

array-init-definition オプションを使用して、配列の初期値および定数値を定義します。

注意:
variable-definition オプションで、キーワード INIT が初期化に使用されている場合、変数の内容に影響するステートメントによって値を変更することができます。キーワード CONST が初期化に使用されている場合、値を変更しようとすると、コンパイラで拒否されます。

プログラミングガイド』の「フィールドの定義」、および特に次のセクションも参照してください。

このセクションでは、次のトピックについて説明します。


制限事項

再定義されたフィールドでは、array-init-definition は許可されていません。

構文説明

構文要素 説明
ALL
ALL オプション:

配列のすべてのオカレンスを、同じ値で初期化します。

ALL オプションは、他の初期化の定義と組み合わせることはできません。

index
添字オプション:

index で指定した配列オカレンスを初期化します。

単一の添字または添字の範囲を使用する場合、すべてのオカレンスに割り当てられる一意の値(constant または system-variable)のみを指定できます。

例:

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:

特殊な添字表記 V は、配列オカレンスの連続したシーケンスを個々の値(constant または system-variable)で埋めるために使用します。

配列の1 つの次元のみに V 表記を指定できます。値の数は、指定した次元のオカレンス数を超えないようにする必要があります。

デフォルトで V 添字が使用されるため、1 次元配列の V 表記を省略できます。

V を使用した場合に各値が入力されるオカレンスを示す例:

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
定数値オプション:

配列を初期化する定数(値)。

値の指定がないオカレンスは、デフォルト値で初期化されます。

連続するオカレンスのリストでは、カンマ(,)のみを指定することで、オカレンスを 1 つスキップできます。ただし、最後のオカレンスの特定の値でリストを終了する必要があります。

詳細については、『プログラミングガイド』の「ユーザー定義定数」を参照してください。

注意:
複数の定数値またはシステム変数を指定する場合は、それぞれを、入力デリミタ文字(ID セッションパラメータで指定した文字)またはコンマ(,)で区切る必要があります。値のリストに数字が入力されていて、コンマが(セッションパラメータ DC を使用して)小数点文字として定義されている場合は、コンマと値を追加空白文字で区切るか、入力デリミタ文字を使用します。

ID=; および 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
システム変数オプション:

配列の初期値として Natural システム変数の値を指定することもできます。

constant については Note も参照してください。

FULL LENGTH <character-string>

LENGTH n <character-string>

英数字/Unicode 変数の文字列オプション:

Natural データフォーマット A または U の変数の場合、character-string'ABC' など)を初期値として使用して、変数フィールドのすべてまたは一部に入力できます。

character-string は Natural データフォーマット A または U の定数です。『プログラミングガイド』の「英数字定数」と「Unicode 定数」を参照してください。

FULL LENGTH オプション:

FULL LENGTH オプションを使用すると、オカレンスが完全に入力されるまで、特定の character-string が指定した配列オカレンスに繰り返し移動します。

LENGTH オプション:

LENGTH n オプションを使用すると、オカレンスの最初の n 桁が入力されるまで、特定の character-string が指定した配列オカレンスに繰り返し移動します。

各値が入力されるオカレンスを示す例:

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

1 つの array-init-definition の中では、FULL LENGTH または LENGTH n のいずれか一方だけを指定できます。両方の表記を混在させることはできません。

注意:
初期値を配列に割り当てるための定義について、詳細は「例 2 - DEFINE DATA(配列の定義/初期化)」を参照してください。