$ZSEARCH関数は、指定されたファイル名と一致するファイルの検索を試みます。ファイルが存在する場合、ファイル名を返します; ファイルが存在しない場合は、null文字列を返します。
$ZSEARCH関数の書式は次のとおりです:
$ZSEARCH(expr[,intexpr])
この式にはワイルドカードの有無にかかわらずファイル名が含まれていて、$ZSEARCH() は一致するファイルの検索を試みます。同じファイル名で$ZSEARCHを繰り返すと、同じコンテキストが使用され、一致するファイルのシーケンスが存在する場合はそれを返します; シーケンスが使い尽くされると、$ZSEARCH() は空の文字列( "")を返します。ファイル名を変更すると、新しいコンテキストが開始されます。
式がディレクトリを指定していない場合、$ZSEARCH() は現在の作業ディレクトリを使用します。
オプションの整数式は、検索ごとに0〜255の「ストリーム」番号を指定します; ストリームは同時に進行中の$ZSEARCH() コンテキストを最大256個持つ手段を提供します。
$ZSEARCH() ストリームが一度も使用されていない場合、または、式がストリームの最後の$ZSEARCH() の引数と異なる場合、関数はコンテキストをリセットして式に一致する最初のパス名 を返します; それ以外の場合は、照合順序で次の一致するファイルを返します; 同じ式に対して最後に前のパス名が返され、同じストリームが引数に一致する最後のパス名だった場合、$ZSEARCH() はnull文字列を返します。
$ZSEARCH() は、ファイルが存在することを確認するためのツールを提供します。ファイル名の妥当性を判断するための情報は、 “$ZPARSE()”を参照してください。
注意 | |
---|---|
POSIX の stat() 関数を呼び出してメタデータにアクセスすることができます。オプションのGT.M POSIXプラグインは、Mアプリケーションコードから簡単にアクセスできるstat() 関数をパッケージ化しています。 |
例:
GTM>write $zsearch("data.dat") /usr/staff/ccc/data.dat GTM>
これは、$ZSEARCH() を使用して、現在のデフォルト・ディレクトリのプロセスに "data.dat"の完全なファイルパス名 を表示します。
例:
GTM>set x=$zsearch("*.c") GTM>for set x=$zsearch("*.m") quit:x="" write !,$zparse(x,"NAME")
このFORループは、$ZSEARCH() および $ZPARSE()を使用して、現在の 作業ディレクトリのプロセスにMソース・ファイル名を表示します。検索が最初から始まるようにするには、最初に異なる引数で検索してコンテキストをリセットします。