ホーム|管理ポータル|インデックス
|
Caché ObjectScript リファレンス
$ZSEARCH
|
|
|
サーバ:docs.intersystems.com |
インスタンス:CACHE20131J |
ユーザ:UnknownUser |
|
|
指定したターゲット・ファイルの完全なファイル指定 (パス名とファイル名) を返します。
Synopsis
$ZSEARCH(target)
$ZSE(target)
$ZSEARCH は指定されたターゲット・ファイルまたはディレクトリの完全なファイル仕様 (パス名とファイル名) を返します。ファイル名にはワイルドカードを含む場合もあるため、
$ZSEARCH はワイルドカードを満たす一連の完全修飾パス名を返します。
-
$ZSEARCH は、target をスキャンして、パーセント文字 (%) で囲まれているか否かを確認します。このようなテキストを見つけた場合は、この文字列を環境変数として処理します。
$ZSEARCH は、文字列の名前変換を実行します。
-
$ZSEARCH は、手順 1 で得られた文字列をスキャンして、最後のスラッシュ文字を見つけます。最後のスラッシュが見つかった場合は、検索されるパスまたはディレクトリとして、最後のスラッシュの前の文字までの文字列を使用します。最後のスラッシュが見つからない場合は、現在作業しているディレクトリを検索します。これは、現在のネームスペースから決定します。
-
手順 2 で
$ZSEARCH が最後のスラッシュを見つけた場合、最後のスラッシュの後に続く target 文字列の一部を、ファイル名検索パターンとして使用します。手順 2 で最後のスラッシュが見つからなかった場合は、手順 1 で得た文字列全体を、ファイル名検索パターンとして使用します。
ファイル名検索パターンは、正当なファイル名文字列あるいはファイル名のワイルドカード式です。検索パターンに一致する最初のファイル名は、
$ZSEARCH 関数値として返されます。最初に一致したファイルがどれであるかは、プラットフォームに依存します (下記のメモ・セクションで説明しています)。
ZNSPACE "SAMPLES"
WRITE ##class(%Library.File).NormalizeDirectory("CACHE.DAT"),!
ZNSPACE "USER"
WRITE ##class(%Library.File).NormalizeDirectory("CACHE.DAT")
上記のワイルドカードは、ホスト・プラットフォームの使用規定に従います。Windows では、
$ZSEARCH は大文字と小文字を区別せずに検索を実行し、検索したファイルまたはディレクトリの実際の文字を返します。例えば、j* は JOURNAL、journal、または Journal と一致する可能性がありますが、実際のディレクトリ名が Journal の場合は、Journal が返されます。
Windows および UNIX® システムでは、現在のディレクトリを指定する単一ドット (.) や、その親ディレクトリを指定する二重ドット (..) など、標準のパス名記号も使用できます。これらの記号は、ワイルドカードと組み合わせて使用できます。
target パラメータに使用できる値のタイプは、以下のとおりです。
以下の Windows の例は、SAMPLES ネームスペースの中でファイル拡張子が .DAT で終了するすべてのファイルを検索します。
ZNSPACE "SAMPLES"
SET file=$ZSEARCH("*.DAT")
WHILE file'="" {
WRITE !,file
SET file=$ZSEARCH("")
}
WRITE !,"That is all the matching files"
QUIT
C:\InterSystems\Cache\Mgr\Samples\CACHE.DAT
以下の Windows の例は、SAMPLES ネームスペースの中で文字 c で開始するすべてのファイルを検索します。
ZNSPACE "SAMPLES"
SET file=$ZSEARCH("c*")
WHILE file'="" {
WRITE !,file
SET file=$ZSEARCH("")
}
WRITE !,"That is all the matching files"
QUIT
C:\InterSystems\Cache\Mgr\Samples\CACHE.DAT
C:\InterSystems\Cache\Mgr\Samples\cache.lck
Windows では、target パラメータは、ワイルドカード文字 (* と ?) を含む標準ファイル指定です。Windows システムでは、* ワイルドカードはドットと一致させるために使用できますが、? ワイルドカードは使用できません。名前要素内では、? ワイルドカードはゼロ文字に一致することができません。しかし名前要素の最後では、? ワイルドカードがゼロ文字に一致するときは無視されます。
特にディレクトリを指定しなければ、現在作業中のディレクトリを使用します。
$ZSEARCH はディレクトリで最初に一致したエントリを、アルファベット順に返します。これは完全ファイル指定、または完全修飾パス名を返します。ドライブ文字は、どのように指定したかに関係なく、常に大文字で返されます。
UNIX® では、target パラメータに UNIX® 標準のファイル指定を使用します。このパラメータでは、ワイルドカード文字 (* と ?) も使用できます。特にディレクトリを指定しなければ、現在作業中のディレクトリを使用します。
UNIX® では、
$ZSEARCH は、ディレクトリ内の最初にアクティブなエントリを返します。UNIX® は、ディレクトリのエントリをアルファベット順に保存しないので、返り値はアルファベット順ではありません。Windows のプラットフォームとは異なり、
$ZSEARCH 関数は現在作業中のディレクトリが使用されない限り、完全ファイル指定、または完全修飾パス名を返しません。
OpenVMS では、target パラメータは、ワイルドカード文字 (* と %) を含む標準 OpenVMS ファイル仕様です。特にディレクトリを指定しなければ、現在作業中のディレクトリを使用します。OpenVMS には、環境変数の置換や target のスラッシュ文字のスキャン機能はありません。
OpenVMS では、
$ZSEARCH は、ディレクトリで最初にアクティブなエントリを返します。
$ZSEARCH は、デバイスとディレクトリを含む、完全ファイル指定を返します。