バージョン 4.2.5
 —  ステートメント  —

配列用の初期値/定数値

DEFINE DATA LOCALDEFINE DATA INDEPENDENTDEFINE DATA CONTEXT、および DEFINE DATA OBJECT variable-definition オプションで使用する array-init-definition オプションの構文は、次のとおりです。

../graphics/sbo3b.gif ../graphics/cbo3b.gif ALL         ../graphics/cbc3b.gif../graphics/sbc3b.gif

FULL LENGTH
LENGTH n

../graphics/cbc2.gif <character-s ...> ../graphics/cbc4b.gif../graphics/dot3.gif

index[:index]
V

../graphics/cbc2.gif ,...3

<

constant

system-variable,...

>

このドキュメントでは、次のトピックについて説明します。


機能

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

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

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

Top of page

制限事項

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

Top of page

構文説明

ALL 配列のすべての次元にあるすべてのオカレンスを、同じ値で初期化します。
index index で指定した配列オカレンスのみを初期化します。 index を指定する場合、constant で指定できる値は 1 つだけです。つまり、指定したオカレンスはすべて、同じ値で初期化されます。
V 1 つの次元のオカレンスを異なる値で初期化する場合、この表記は多次元配列にのみ関係しています。 V は、V で指定した次元のすべてのオカレンスで構成されるインデックス範囲を示します。つまり、その次元のオカレンスは、すべて初期化されます。 配列ごとに 1 つの次元のみを、V で指定することができます。 オカレンスは、オカレンスごとにその次元用に指定した値で初期化されます。 値の数は、V で指定した次元のオカレンス数を超えないようにする必要があります。
constant 配列を初期化に使用する定数(値)(INIT)、または配列に割り当てる定数(CONSTANT)です。 定数の詳細については、『プログラミングガイド』の「ユーザ定義定数」を参照してください。

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

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

注意:
複数の定数値またはシステム変数を指定する場合は、それぞれを、INPUT 区切り文字(ID セッションパラメータで指定した文字)またはコンマ(,)で区切る必要があります。 セッションパラメータ DC でコンマを小数点文字として定義している場合は、この目的でコンマを使用することはできません。

FULL LENGTH

LENGTH n

初期値として、特定の 1 文字または文字列を、変数の全体または一部に挿入します(フォーマット A または U の変数にのみ有効)。

FULL LENGTH オプションを使用すると、指定した character または characters が配列オカレンス全体に挿入されます。

LENGTH n オプションを使用すると、配列オカレンスの先頭 n 桁に、指定した character または characters が挿入されます。

FULL LENGTH または LENGTH n では、system-variable を指定することはできません。

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

配列に対する LENGTH n の例:

この例では、配列の各オカレンスの先頭 5 桁に NONON が挿入されます。

DEFINE DATA LOCAL
1 #FIELD (A25/1:3) INIT ALL LENGTH 5 <'NO'> 
...
END-DEFINE

配列への初期値の割り当てについては、多数の例が『プログラミングガイド』に記載されています。

Top of page