$ZPARSE()

ファイル名をフルパス名に展開し、フルパス名またはそのフィールドの1つ (ディレクトリ、名前、拡張子) を返します。

$ZPARSE関数の書式は次のとおりです。

$ZPARSE(expr1[,expr2[,expr3[,expr4[,expr5]]]])

$ZPARSE() は、 ファイル名が構文的に正しいことを検証するため、ファイル名の特定のフィールドを調べるため、およびデフォルトの階層に基づいて部分的な指定で不足している部分を埋め込むためのツールを提供します。ファイルが存在するかどうかを判断する方法については、 “$ZSEARCH()” を参照してください。

最初の$ZPARSE() の引数はオプションです。他の引数を使用しない場合は、1つの引数で十分です。ただし、選択された引数を使用する場合、$ZPARSE() では、指定されていない引数に空文字列( "" )を入力する必要があります。

2番目の引数に使用できるキーワードは次のとおりです:

"DIRECTORY" :ディレクトリ名

"NAME":ファイル名(ファイル拡張子を除く)

"TYPE":ファイルタイプの拡張子

キーワードは大文字または小文字のどちらでも入力できます。これらの文字列と間接指定に評価される変数は、引数2でも受け入れられます。キーワード自体が文字列リテラルとして表示される場合は、引用符( "" )で囲む必要があります。

引数1、3、4を構築するには、次のガイドラインに従わなければなりません:

$ZPARSE() の第5引数 のキーワードは次のとおりです:

NULL( "" ):完全なファイル指定またはデバイスを返します。

"SYNTAX_ONLY":ディレクトリまたはデバイスの存在のチェックを無効にします。

$ZPARSE()の例

例:

GTM>write $zparse("test","","/usr/work/","dust.lis")
/usr/work/test.lis
GTM>

これは、$ZPARSE() を使用して、第3引数と第4引数を使用してデフォルト値を示します。結果は、3番目の式のディレクトリ・フィールド、1番目の式の名前、4番目の式のタイプを取得します。

例:

GTM>r!,"file :",f w ?20,$zparse(f,"directory")
file: test.list /usr/work/
GTM>

これは、$ZPARSE() を使用してプロンプト・ファイルに入力として入力されたファイル名のディレクトリを表示します:この場合は現在の作業ディレクトリです。

例:

$ cd /usr/work/me
$ $gtm
GTM>write $zparse("test","","x.list","y.c")/usr/work/me/test.lis
GTM>write $zparse("test","","/usr/work/","/dev/y.c")/usr/work/test.c
GTM>write $zparse("test","","/usr/work","/dev/y.c")/usr/test.c
GTM>

この例は、$ZPARSE() への第3引数と第4引数の使用を示しています。最初のステートメントでは、最初の引数にディレクトリまたは拡張フィールドがないため、$ZPARSE() は3番目の引数の拡張フィールドを置き換えます。第3引数と第4引数のどちらもディレクトリを指定していないため、第4引数には第3引数に存在しないフィールドが含まれていないため、第4引数は使用されません。

2番目のステートメントでは、$ZPARSE() の最初の引数には、ディレクトリと拡張子の両方が再度指定されていません。この例では、$ZPARSE() は第3引数で指定されたディレクトリを使用し、第1引数と第3引数のどちらもファイル拡張子を指定しないため、$ZPARSE() は第4引数のファイル拡張子を使用します。

3番目の文では、 "/usr/work" はバックスラッシュ(/)で終わらないため、$ZPARSE() は部分文字列 "work"をファイル名として解釈します。次に、$ZPARSE() は、最初の引数に欠落しているディレクトリを "/usr/" に置き換え、1番目と3番目の引数の両方に欠けている拡張子の4番目の引数を ".c"に置き換えます。

例:

$ cd /usr/work/me
$ /usr/lib/fis-gtm/V5.4-002B_x86/gtm
GTM>For i="DIRECTORY","NAME","TYPE","" Write $ZPARSE("test.m",i),!
/usr/work/me/
test
.m
/usr/work/me/test.m
GTM>

この例は、第2引数の可能な値ごとに生成された出力を示しています。

inserted by FC2 system