日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
ディレクトリ・ファイルを検索し,指定したファイルの完全ファイル指定を戻します。
F$SEARCH (ファイル指定[,ストリーム id])
ファイル指定
検索するファイル指定を含む文字列を指定します。装置名またはディレクトリ名を省略する場合には,F$SEARCH 関数は,現在の省略時のディスクおよびディレクトリを,省略時の値として使用します。しかし F$SEARCH 関数は,ファイル名またはファイル・タイプに対して省略時の値を補いません。バージョン番号を省略する場合には,F$SEARCH 関数は,最高のバージョン番号を持つファイルのファイル指定を戻します。 ファイル指定 引数でワイルドカード文字を使用すると, F$SEARCH 関数を呼び出すたびに, ファイル指定 引数に当てはまる次のファイル指定が戻されます。 ファイル指定 引数に当てはまる最後のファイル指定が戻された後は,空文字列が戻されます。ストリーム id
検索ストリーム識別番号を示す,正の整数を指定します。F$SEARCH 関数を 2 回以上使用し,それぞれに異なる ファイル指定 引数を指定したい場合は,検索ストリーム識別番号を使用して,それぞれの検索コンテキストを管理します。コマンド・プロシージャの中で F$SEARCH 関数を 2 回以上使用し,異なる ファイル指定 引数を使用する場合には,各検索を別々に識別するために,ストリーム id 引数を指定します。
ストリーム id 引数を省略すると,F$SEARCH 関数は,異なる ファイル指定 引数が指定されるたびに,ディレクトリ・ファイルの先頭から検索を開始します。
F$SEARCH レキシカル関数は,RMS サービスの $SEARCH を呼び出し,ディレクトリ・ファイルを検索し,指定したファイルの完全ファイル指定を戻します。 F$SEARCH 関数を使用すると,$SEARCH RMS サービスを使用して,ディレクトリ内のファイルを検索できます。$SEARCH ルーチンについての詳細は,『OpenVMS Record Management Services Reference Manual』を参照してください。コマンド・プロシージャ内のループで F$SEARCH 関数を使用すると,ワイルドカード文字を含む ファイル指定 引数と一致するファイルすべてのファイル指定を戻すことができます。 F$SEARCH 関数が実行されるたびに,ワイルドカード文字を含むファイル指定に一致する,次のファイル指定が戻されます。次に戻すファイル指定がなくなると,空文字列が戻されます。ループ内で F$SEARCH 関数を使用する場合は, ファイル指定 引数に,アスタリスク (*) またはパーセント記号 (%) ワイルドカード文字を使用しなければなりません。ワイルドカード文字を使用しない場合は, F$SEARCH 関数は常に同じファイル指定を戻します。
次のいずれかの方法を使用して,検索ストリームのコンテキストを維持する必要があります。
- ストリーム id 引数を指定し,明示的に維持する。
- ストリーム id 引数を省略し, F$SEARCH 関数を実行するたびに同じ ファイル指定 引数を使用して,暗黙に維持する。
検索ストリームのコンテキストを維持しない場合は,異なる ファイル指定 引数を指定するたびに,ディレクトリ・ファイルの先頭から新しい検索を開始することになります。
注意
レキシカル関数 F$SEARCH は,ユーザが指定した選択基準に一致したすべてのファイルを戻すことができます。また,検索開始時から検索終了時までの間の任意の時点でディレクトリに存在するすべてのファイルを戻すことができます。検索中に作成,リネーム,または削除されたファイルは,戻されないことがあります。
#1 |
---|
$ START: $ FILE = F$SEARCH("SYS$SYSTEM:*.EXE") $ IF FILE .EQS. "" THEN EXIT $ SHOW SYMBOL FILE $ GOTO START |
このコマンド・プロシージャは,SYS$SYSTEM ディレクトリにある,すべての .EXE ファイルの最新バージョンのファイル指定を表示します ( バージョン番号にアスタリスク (*) が使用されていないので,最新バージョンだけが表示されます )。 ファイル指定 引数である SYS$SYSTEM:*.EXE は文字列式なので,引用符 (" ") で囲んでいます。
stream-id 引数が指定されていないため, F$SEARCH 関数は 1 つの検索ストリームを使用します。後続の F$SEARCH 呼び出しは,同じ ファイル指定 引数を使用して, SYS$SYSTEM から .EXE ファイルの次のファイル指定を戻します。各 .EXE ファイルの最新バージョンが表示された後は, F$SEARCH 関数は空文字列を戻し,このプロシージャは終了します。
#2 |
---|
$ START: $ COM = F$SEARCH ("*.COM;*",1) $ DAT = F$SEARCH ("*.DAT;*",2) $ SHOW SYMBOL COM $ SHOW SYMBOL DAT $ IF (COM.EQS. "") .AND. (DAT.EQS. "") THEN EXIT $ GOTO START |
このコマンド・プロシージャは,.COM ファイルと .DAT ファイルの両方の省略時のディスクおよびディレクトリを検索します。各検索のコンテキストが維持されるように,各 F$SEARCH 関数に対して stream-id 引数が指定されている点に注意してください。
最初の F$SEARCH 関数は,ファイル・タイプが .COM であるファイルの検索を,ディレクトリ・ファイルの先頭から開始します。.COM ファイルが検出されると,検索コンテキストを維持するためにポインタが設定されます。 F$SEARCH 関数をもう一度実行すると,ファイル・タイプが .DAT であるファイルの検索を,ディレクトリ・ファイルの先頭から開始します。このプロシージャがループを実行して,START というラベルに戻ると,各 F$SEARCH 関数は stream-id 引数を使用して,ディレクトリ・ファイルの正しい位置から検索を開始します。 .COM ファイルと .DAT ファイルのすべてのバージョンが戻された後,このプロシージャは終了します。
#3 |
---|
$ FILESPEC = F$SEARCH("TRNTO""SMITH SALLY""::DKA1:[PROD]*.DAT") $ SHOW SYMBOL FILESPEC FILESPEC = "TRNTO"smith password"::DKA1:[PROD]CARS.DAT" |
この例では,F$SEARCH 関数を使用して,リモート・ノードのファイルのファイル指定を戻しています。アクセス制御文字列は, F$SEARCH 関数に対する引数として文字列式の一部で使用されているため,二重引用符で囲まれています。文字列式に引用符含める場合は,二重引用符を 2 つ重ねて指定する必要があります。
F$SEARCH 関数が,アクセス制御文字列を含むノード名を戻す場合は,実際のユーザのパスワードが "password" という単語に置き換えられます。
目次 | 索引 |
|