本ルーチンには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 (32 ビット システム) | 
                                | 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 | 
他参照:
 関連項目
 関連項目