CBL_LOCATE_FILE

このルーチンには、2 種類の使用法があります。このルーチンは、ファイル指定で環境変数を拡張する場合に使用できます。この場合、環境変数には、いくつかのパスのリストが含まれます。特定のファイル指定を使用する OPEN INPUT 文で、ライブラリ ファイル内のファイルまたは個別のディスク ファイルのどちらを検索するかを指定することもできます。

構文:

call "CBL_LOCATE_FILE" using     user-file-spec
                                 user-mode
                                 actual-file-spec
                                 exist-flag
                                 path-flag
                       returning status-code

パラメーター:

user-file-spec
呼び出しプロトタイプ使用時 (説明の読み方):pic x(n)
PIC:pic x(n)
user-mode
呼び出しプロトタイプ使用時 (説明の読み方):cblt-x1-compx
PIC:pic x comp-x
actual-file-spec
呼び出しプロトタイプ使用時 (説明の読み方)、次のように定義されたグループ項目:
01 actual-file-spec03 buffer-len   cblt-x2-compx03 buffer       pic x(n) 
ピクチャ、次のように定義されたグループ項目
01 actual-file-spec03 buffer-len   pic x(2) comp-x03 buffer       pic x(n) 
exist-flag
呼び出しプロトタイプ使用時 (説明の読み方):cblt-x1-compx
PIC:pic x comp-x
path-flag
呼び出しプロトタイプ使用時 (説明の読み方):cblt-x1-compx
PIC:pic x comp-x
status-code
説明の読み方」を参照

入力パラメーター:

user-file-spec
ファイル名指定を含みます。ファイル名指定には、組み込みの環境変数またはライブラリ名を含めることができます。
user-mode
user-file-spec の処理内容を指定します。
0 ファイルがライブラリ内にあるか、または個別のディスク ファイルとして存在するかを確認します。

user-file-spec に組み込みライブラリ名が含まれる場合は、そのライブラリ (存在する場合) が開かれてファイルが検索されます。ライブラリはその後も開かれたままです。

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」を参照してください。
128 0 とします。ただし、user-file-spec がヌル終了文字列である場合を除きます。終了時には、actual-file-spec もヌル終了文字列として生成されます。
129 1 とします。ただし、user-file-spec がヌル終了文字列である場合を除きます。終了時には、actual-file-spec もヌル終了文字列として生成されます。
130 2 とします。ただし、user-file-spec がヌル終了文字列である場合を除きます。終了時には、actual-file-spec もヌル終了文字列として生成されます。
path-flag
user-mode = 2 の場合は、このデータ項目に、前の user-mode = 1 または 2 の呼び出しからこの項目に返された値が含まれます。
buffer-len
buffer のサイズ

出力パラメーター:

buffer
user-mode で説明した解決済みのファイル指定を格納するバッファー。解決済みのファイル指定が buffer-len で指定したサイズより大きい場合は、buffer の内容は変更されず、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 はストライプを認識しません。このルーチンをストライプ化したファイルで使用すると、ルーチンは、最初のストライプのみを検索します。そのため、このルーチンは個々のストライプでのみ使用し、ストライプ名でストライプを参照します。ストライプ化ファイルの使用の詳細については、「ファイルのストライプ化」を参照してください。

注: ストライプ化は非推奨です。下位互換性のみを目的として提供されています。代わりに IDXFORMAT"8" を使用することをお奨めします。

例:

user-file-spec は次のフォームを取ります。

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