INITIALIZE ステートメント
INITIALIZE ステートメントは、選ばれたカテゴリーのデータ・フィールドをあらかじめ定義されている値に設定します。
このステートメントは、
機能的には 1 つ以上の MOVE ステートメントを実行するのと同じことになります。
| フォーマット |
 .------.
V |
>>-INITIALIZE----ID-1-+----------------------------------------->
>--+----------------------------------------------------------------------+-><
| .-------------------------------------------------------. |
| V | |
'-REPLACING----+-ALPHABETIC----------+--+------+--BY--+-ID-2-------+-+-'
+-ALPHANUMERIC--------+ '-DATA-' '-リテラル-1-'
+-ALPHANUMERIC-EDITED-+
+-NATIONAL------------+
+-NATIONAL-EDITED-----+
+-NUMERIC-------------+
+-NUMERIC-EDITED------+
+-DBCS----------------+
'-EGCS----------------'
|
- ID-1
- 受け取り領域。
ID-1 は、以下のいずれかを参照する必要があります。
- 英数字グループ項目
- 国別グループ項目
- 以下のいずれかのカテゴリーの基本データ項目
- 英字
- 英数字
- 英数字編集
- DBCS
- 外部浮動小数点
- 内部浮動小数点
- 国別
- 国別編集
- 数字
- 数字編集
- ID-2 またはリテラル -1 が指定されている MOVE ステートメントの中で受け取りオペランドとして有効な特殊レジスター
ID-1 が国別グループ項目を参照する場合は、ID-1 はグループ項目として処理されます。
- ID-2、リテラル-1
- 送り出し領域。
ID-2 が国別グループ項目を参照する場合は、ID-2 は国別カテゴリーの基本データ項目として処理されます。
ID-2 は、ID-1 を受け取りオペランドとして指定した MOVE ステートメントの送り出しオペランドとして有効な基本データ項目 (または基本項目として扱われる国別グループ項目) を参照する必要があります。
リテラル-1 は、ID-1 を受け取りオペランドとして指定した MOVE ステートメントの送り出しオペランドとして有効なリテラルでなければなりません。
添え字付きの項目を ID-1 に指定することができます。完全なテーブルを含むグループを ID-1 として指定することによってのみ、テーブル全体を初期設定することができます。
使用上の注意: ID-1 のデータ記述項目には、OCCURS 文節の DEPENDING 句を入れることができます。ただし、INITIALIZE ステートメントを使用しても、同じ 01 レベル項目内における、
OCCURS 文節の DEPENDING 句に続く随所の項目またはグループを初期化することはできません。
ID-1 のデータ記述項目に、RENAMES 文節を入れることはできません。
特殊レジスターは、暗黙の MOVE ステートメントの有効な受け取りフィールドまたは送り出しフィールドである場合のみ、
それぞれ ID-1 および ID-2 として指定することができます。
REPLACING 句
REPLACING 句が指定されている場合:
- ID-2 は、REPLACING 句で指定された対応するカテゴリーの項目への MOVE ステートメントの送り出しオペランドとして有効なカテゴリーの項目を参照する必要があります。
- リテラル-1 は、REPLACING 句で指定された対応するカテゴリーの項目への MOVE ステートメントの送り出しオペランドとして有効なカテゴリーでなければなりません。
- 浮動小数点リテラル、内部浮動小数点カテゴリーのデータ項目、または外部浮動小数点カテゴリーのデータ項目は、NUMERIC カテゴリーであるかのように扱われます。
- REPLACING 句の中では、同じカテゴリーを繰り返すことはできません。
REPLACING という語に続くキーワードは、データのクラスとカテゴリーに示されたデータのカテゴリーに対応しています。
REPLACING 句が指定されていない場合、
- カテゴリーが英字、英数字、英数字編集、DBCS、国別、または国別編集の受け取り項目については、SPACE が暗黙の送り出し項目になります。
- カテゴリーが数字または数字編集の受け取り項目については、ZERO が暗黙の送り出し項目になります。
INITIALIZE ステートメントの規則
- ID-1 が基本項目、英数字グループ項目、または国別グループ項目のいずれを参照しているかに関係なく、操作はすべて、それぞれが受け取りフィールドとして基本項目を持つ一連の MOVE ステートメントが書かれているかのように行われます。
REPLACING 句が指定されている場合、
- ID-1 が英数字グループ項目または国別グループ項目を参照している場合、ID-1 が参照するデータ項目内のいずれの基本項目も、REPLACING 句で指定されたカテゴリーに属している場合に限り初期設定されます。
初期設定は、ID-2 またはリテラル-1 によって参照されるデータ項目が、この受け取り項目への暗黙の MOVE ステートメントの送り出しオペランドであるかのように行われます。
次の例外を除き、そのような基本受け取り項目は、グループ内のテーブル項目のオカレンスも含め、すべて初期設定されます。
- 指標データ項目
- オブジェクト・リファレンス
- USAGE IS POINTER、USAGE IS
FUNCTION-POINTER、または USAGE IS PROCEDURE-POINTER で定義されているデータ項目
- 基本 FILLER データ項目
- ID-1 に従属し REDEFINES 文節を含む項目、
またはそのような項目に従属するすべての項目 (ただし、ID-1 は REDEFINES 文節を含むことも、または再定義する項目に従属することもできます)。
- ID-1 によって参照される領域は、ID-1 がステートメントに現れる順 (左から右) に初期設定されます。グループ受け取りフィールド内では、影響を受ける基本項目は、
それらがグループ内で定義されている順に初期設定されます。
- ID-1 が ID-2 と同じストレージ域に置かれる場合は、
このステートメントの実行結果は、これらのオペランドが同じデータ記述項目によって定義されている場合であっても、未定義のままです。
|