CBL_LOCATE_FILE

本ルーチンには2つの用法がある。ファイル指定においては環境変数にいくつかのパスのリストが入っており、この環境変数を拡張するのに本ルーチンを使用できる。また、特定ファイル指定を使用するOPEN INPUTがファイルをライブラリ( .LBRファイル)内に見つけるか、あるいは別のディスクファイルとして見つけるかを、本ルーチンで決定する。

構文:
call "CBL_LOCATE_FILE" using     user-file-spec
                                 user-mode
                                 actual-file-spec
                                 exist-flag
                                 path-flag
                       returning status-code
Parameters:
呼び出しプロトタイプ使用時 ( 説明の読み方) PIC (32bitシステム)
user-file-spec pic x(n). pic x(n).
user-mode cblt-x1-compx pic x comp-x.
actual-file-spec Group item defined as: Group item defined as:
  buffer-len   cblt-x2-compx   pic x(2) comp-x.
  buffer   pic x(n).   pic x(n).
exist-flag cblt-x1-compx pic x comp-x.
path-flag cblt-x1-compx pic x comp-x.
status-code 説明の読み方 参照
入力パラメタ:
user-file-spec ファイル名指定が入る。埋込み環境変数またはライブラリ名を含むことができる。
user-mode user-file-specをどうするかを指定する。
0 ファイルが、ライブラリに、あるいは別のディスクファイルとして存在するか否かをチェックする。

user-file-specが埋込みlibrary-nameを含んでいる場合、ライブラリは開かれ(存在している場合)、ファイルを検索する。その後、ライブラリは開いたままである。

user-file-specが埋込み環境変数を含んでいる場合、変数に指定されている各パスに沿ってファイルを検索する。

ファイルが見つかると、出口上のactual-file-specは、環境変数を成功したパスに展開したファイル指定を格納する。そうでない場合、出口上のactual-file-specは、環境変数をそれに含まれている最初のパスに展開したファイル指定を格納する。

1 user-file-specが環境変数を含んでいる場合、出口上のactual-file-specは、環境変数をそれに含まれている最初のパスに展開したファイル指定を格納する。ファイルの検索は行われない。
2 user-file-specが環境変数を含んでいる場合、出口上のactual-file-specは、環境変数をそれに含まれている次のパスに展開したファイル指定を格納する。ファイルの検索は行われない。本オプションの使用は、user-modeを1または2とした呼出しが成功したあとに限定する。次のpath-flagを参照のこと。
path-flag user-modeが 2の場合、データ項目には、前のuser-modeが1または2の呼出しから本項目に入れて戻された値が入っていること。
buffer-len バッファのサイズ
出力パラメタ:
buffer user-modeの項で説明したように、解決されたファイル指定を格納するバッファ。解決されたファイル指定がbuffer-lenで指定されたサイズより大きい場合、バッファの内容は変更されずにstatus-codeが内容に応じて設定される。
exist-flag user-modeが0の場合、出口上のデータ項目は、user-file-specに指定されたファイルが存在するか否かを示す。
0 ファイルが見つからない、または検索されていない。
1 すでに開かれていたライブラリにファイルが見つかった。
2 user-file-specに指定されているライブラリにファイルが見つかった。
3 別のディスクファイルとしてファイルが見つかった。

user-modeが0でない場合、データ項目は常に出口上で0となっている。

path-flag user-file-specが次のようなactual-file-specに展開された埋込み環境変数を格納したか否かを示す。
0 actual-file-specは展開された環境変数を含まない。
>0 actual-file-specは展開された環境変数を含む。
status-code 戻り状態:
0 成功
1 環境変数が存在しない。
2 次のパスがない。
3 解決されたファイル名がバッファサイズを超えている。
4 生成されたファイル名が違法である。
255 その他のエラー
説明:

CBL_LOCATE_FILEはストライプ対応ではない。本ルーチンをストライプファイルに使用する場合、ルーチンは最初のストライプにのみ配置する。本ルーチンをストライプごとに使用し、ストライプ名によってストライプを参照する。ストライプファイルの使用に関する詳細は、ファイルハンドリングのファイルハンドラ設定の章の ファイルストライプ の項目を参照のこと。

例:

user-file-specは、次の形式をとる。

標準ファイル名: path\filename.ext
埋込み環境変数: $envname\filename.ext
埋込みライブラリ名: path\lbr-name.lbr\filename.ext
他参照:

関連項目