処理の為のファイルのオープン/クローズ
概要
プリンターファイルをスプール毎に分割する為に、プログラム中でオープンとクローズを制御したい。
OPEN(E)関数
OPEN命令では、ファイル名オペランドに指定されたファイルがオープンされます。指定されたファイルを1次ファイル、2次ファイル、またはテーブル・ファイルににすることはできない。
1)OPEN
「演算命令」 :OPEN
「演算項目2」 :ファイル名
「結果の標識HI」 :不可
「結果の標識LO」 :エラー標識
「結果の標識EQ」 :不可
2)OPENE
「演算命令」 :OPENE
「演算項目2」 :ファイル名
「結果の標識HI」 :不可
「結果の標識LO」 :不可
「結果の標識EQ」 :不可
OPEN例外を処理する為に、命令コード拡張'E'またはエラー標識ER(LO)を指定できますが、両方を指定することはできません。OPEN命令を明示的に使用して。ファイル名オペランドで指定されたファイルを、モジュールまたはサブプロシージャー内で初めてオープンするには、ファイル仕様書でUSEOPNを指定してください。
モジュールまたはサブプロシージャー中でファイルがオープンされて、後で CLOSE 命令によってクローズされた場合には、プログラマーは OPEN 命令でこのファイルを再度オープンすることができるため、ファイル仕様書に USROPN キーワードを指定する必要はありません。 ファイル仕様書に USROPN キーワードが指定されていない時は、モジュールの初期化時か (グローバル・ファイルの場合)、サブプロシージャーの初期化時に (ローカル・ファイルの場合)、ファイルがオープンされます。 すでにオープンされているファイルに OPEN 命令を指定するとエラーが起こります。
プログラム中での同じファイルに対する複数のOPEN命令は、OPEN命令が出された時にそのファイルがクローズされていれば有効です。
DEVIDキーワードを指定してファイルをオープンするとDEVIDキーワードにパラメータとして指定されたフィールド名はブランクに設定されます。
CLOSE(E)関数
CLOSE命令では、1 つまたは複数のファイルあるいは装置がクローズされ、それらがモジュールから切り離されます。そのフ ァイルに対して明示的に OPEN を指定しないかぎり、モジュールの中で再度そのファイルを使用することはできません。 すでにクローズされたファイルに CLOSE 命令を出してもエラーにはなりません。
1)CLOSE
「演算命令」 :CLOSE
「演算項目2」 :ファイル名または*ALL
「結果の標識HI」 :不可
「結果の標識LO」 :エラー標識
「結果の標識EQ」 :不可
2)CLOSEE
「演算命令」 :CLOSEE
「演算項目2」 :ファイル名または*ALL
「結果の標識HI」 :不可
「結果の標識LO」 :不可
「結果の標識EQ」 :不可
キーワード *ALL を指定すると、グローバル・ファイル仕様書で定義されているすべてのファイルを、一度にクローズすることができます。サブプロシージャーで CLOSE *ALL を指定しても、そのサブプロシージャー内のローカル・ファイルに対しては何の効果もありません。サブプロシージャー内のすべてのローカル・ファイルをクローズするには、ファイルごとに別々の CLOSE 命令をコーディングする必要があります。 配列またはテーブル・ファイル (ファイル仕様書の 18 桁目の T で識別される) を指定することはできません。
CLOSE 例外を処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、両方を指定することはできません。エラー処理の詳細については、ファイル例外/エラーを参照してください。
71 桁目、72 桁目、75 桁目、および 76 桁目はブランクでなければなりません。
配列またはテーブルを出力ファイル(TOFILE キーワードを使用して指定)に書き出す場合には、CLOSE 命令によってファイルがクローズされていれば、 LR 時にその配列またはテーブルのダンプは行われません。 ファイルがクロー ズされている場合には、ダンプを行うために再度ファイルをオープンしなけ ればなりません。