入出力ファイルの存在を調べることはできますか?
NetCOBOLのよくあるご質問を検索できます。
- 入出力ファイルの存在を調べることはできますか?
- NetCOBOLには、ファイルの存在を調査する機能はありません。代替手段としては、ファイルの存在を調べるC言語アプリケーションを作成して、NetCOBOLから呼び出すなどの方法があります。
NetCOBOLの「プログラム間連絡機能」は、COBOLアプリケーションやC言語アプリケーションを呼び出すことができます。ファイルの存在を確認する機能をC言語アプリケーションで作成し、ファイル名や結果をパラメーターで受け渡します。「プログラム間連絡機能」の詳細については、以下のマニュアルを参照してください。
NetCOBOL使用手引書- 第10章 サブプログラムを呼び出す~プログラム間連絡機能~
なお、SELECT句にOPTIONALを指定しないでINPUT指定のOPEN文を実行し、誤り処理手続きまたはFILE STATUS句でエラー内容を判断することも可能です。ただし、メッセージ抑止の環境変数を設定しない場合、OPEN時にエラーメッセージが表示されます。 メッセージを抑止することもできますが、必要なエラー情報が表示されないことがありますので、使用の際は注意してください。
SELECT句やOPEN文などの仕様および使用方法については、NetCOBOL使用手引書および文法書を参照してください。
また、バッチファイルでは、IF文でファイルの有無を調べることもできます。
例)「ファイル名」に指定したファイルが存在しない場合、「コマンド」を実行する。
:
IF NOT EXIST ファイル名 コマンド
SET COBOLINPUT=ファイル名
START /WAIT COBOLアプリケーション実行ファイル名
: