変数初期化(RESET/CLEAR)
CLEAR
構造(レコード様式、データ構造、配列、またはテーブル)や変数(フィールド、サブフィールド、または標識)を、フィールド・タイプ(数値、文字、または標識)に応じて、ゼロ、ブランクに初期化します。
この命令は、個々の要素に対してだけでなく、データ構造全体や配列全体にも適用可能で、構造全体を一括で消去するのに便利です。
RESET
構造または変数を、それぞれの「リセット値」に復元します。
リセット値はデータ構造初期設定(INZ)か、設定が無ければフィールド・タイプに応じて、ゼロ、ブランクに初期化します。
初期設定サブルーチン(*INZSR)がある場合には、リセット値は *INZSR が完了した時点に持っていた値です。
RESETが指定されると、その構造または変数の初期値のスナップショットが、*INZSR 実行後の INITステップの終わりで取られます。
データ構造初期設定と *INZSRサブルーチン の両方を使用してフィールドまたは構造の初期値をセットすることができます。
CLEAR命令・RESET 命令がレコード様式名に適用される場合、そのレコード様式の出力フィールドだけが影響を受けることに注意してください。つまり、WORKSTNファイル・レコード様式の場合、使用状況が出力または入出力であるフィールドだけが影響を受けることになります。フィールド条件付け標識はすべて、この命令により影響を受けます。DISK、SEQ、または PRINTER ファイル・レコード様式のフィールドは、そのレコード様式がプログラム内で出力される場合にのみ影響を受けます。入力専用フィールドは CLEAR 命令・RESET命令に影響されません。定義により、入力専用フィールドは次の入力操作で新しい値をとります。
RESETとCLEARの違い
CLEAR/RESET命令においてフィールド・タイプに応じてゼロ・ブランクに初期化される点は共通です。
RESET命令はこれに加えてデータ構造初期設定で設定されている初期値、さらに初期設定サブルーチン実行後の格納値が初期値になります。
| 項目 | CLEAR | RESET |
|---|---|---|
| 初期化内容 | データ型に応じたゼロ・ブランク | *INZSR終了時の「初期値」 |
| データ構造初期設定 | 無視 | 有効(*INZSRで上書き可) |
| 初期設定サブルーチン(*INZSR) | 無視 | 有効 |
| 使用目的 | 完全な初期化や構造クリア | 定義された「初期状態」への復元 |
| 配列・構造体 | すべての要素をクリア | スナップショットされた初期状態に戻す |