変数初期化(RESET/CLEAR)

CLEAR

構造(レコード様式、データ構造、配列、またはテーブル)や変数(フィールド、サブフィールド、または標識)を、フィールド・タイプ(数値、文字、または標識)に応じて、ゼロ、ブランクに初期化します。
この命令は、個々の要素に対してだけでなく、データ構造全体や配列全体にも適用可能で、構造全体を一括で消去するのに便利です。


RESET

構造または変数を、それぞれの「リセット値」に復元します。
リセット値はデータ構造初期設定(INZ)か、設定が無ければフィールド・タイプに応じて、ゼロ、ブランクに初期化します。

初期設定サブルーチン(*INZSR)がある場合には、リセット値は *INZSR が完了した時点に持っていた値です。
RESETが指定されると、その構造または変数の初期値のスナップショットが、*INZSR 実行後の INITステップの終わりで取られます。
データ構造初期設定と *INZSRサブルーチン の両方を使用してフィールドまたは構造の初期値をセットすることができます。

POINT

CLEAR命令・RESET 命令がレコード様式名に適用される場合、そのレコード様式の出力フィールドだけが影響を受けることに注意してください。つまり、WORKSTNファイル・レコード様式の場合、使用状況が出力または入出力であるフィールドだけが影響を受けることになります。フィールド条件付け標識はすべて、この命令により影響を受けます。DISK、SEQ、または PRINTER ファイル・レコード様式のフィールドは、そのレコード様式がプログラム内で出力される場合にのみ影響を受けます。入力専用フィールドは CLEAR 命令・RESET命令に影響されません。定義により、入力専用フィールドは次の入力操作で新しい値をとります。


RESETとCLEARの違い

CLEAR/RESET命令においてフィールド・タイプに応じてゼロ・ブランクに初期化される点は共通です。
RESET命令はこれに加えてデータ構造初期設定で設定されている初期値、さらに初期設定サブルーチン実行後の格納値が初期値になります。

項目 CLEAR RESET
初期化内容 データ型に応じたゼロ・ブランク *INZSR終了時の「初期値」
データ構造初期設定 無視 有効(*INZSRで上書き可)
初期設定サブルーチン(*INZSR) 無視 有効
使用目的 完全な初期化や構造クリア 定義された「初期状態」への復元
配列・構造体 すべての要素をクリア スナップショットされた初期状態に戻す