CLOSE (ファイルのクローズ)
| 自由形式構文 | CLOSE{(E) } ファイル名|*ALL |
| コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
|---|---|---|---|---|---|---|
| CLOSE (E) | ファイル名 または *ALL | _ | ER | _ | ||
明示的な CLOSE 命令では、1 つまたは複数のファイルあるいは装置がクローズされ、それらがモジュールから切り離されます。そのフ ァイルに対して明示的に OPEN を指定しないかぎり、モジュールの中で再度そのファイルを使用することはできません。 すでにクローズされたファイルに CLOSE 命令を出してもエラーにはなりません。
ファイル名 にはクローズされるファイルを指定します。
キーワード *ALL を指定すると、グローバル・ファイル仕様書で定義されているすべてのファイルを、一度にクローズすることができます。 サブプロシージャーで CLOSE *ALL を指定しても、そのサブプロシージャー内のローカル・ファイルに対しては何の効果もありません。 サブプロシージャー内のすべてのローカル・ファイルをクローズするには、ファイルごとに別々の CLOSE 命令をコーディングする必要があります。 配列またはテーブル・ファイル (ファイル仕様書の 18 桁目の T で識別される) を指定することはできません。
CLOSE 例外 (ファイル状況コードが 1000 より大きい) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細については、ファイル例外/エラーを 参照してください。
71 桁目、72 桁目、75 桁目、および 76 桁目はブランクでなければなりません。
配列またはテーブルを出力ファイル (TOFILE キーワードを使用して指定) に書き出す場合には、CLOSE 命令によってファイルがクローズされていれば、 LR 時にその配列またはテーブルのダンプは行われません。 ファイルがクロー ズされている場合には、ダンプを行うために再度ファイルをオープンしなけ ればなりません。
詳細については、ファイル命令を参照してください。
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
* The explicit CLOSE operation closes FILEB.
/FREE
CLOSE FILEB;
// The CLOSE *ALL operation closes all files in the
// module. You must specify an explicit OPEN for any file that
// you wish to use again. If the CLOSE operation is not
// completed successfully, %ERROR returns '1'.
CLOSE(E) *ALL;
/END-FREE