日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
ファイル指定を解析し,拡張ファイル指定,またはユーザが指定した特定のファイル指定フィールドを戻します。
F$PARSE (ファイル指定 [,省略時のファイル指定] [,関連ファイル指定] [,フィールド] [,解析タイプ])
解析中にエラーを検出した場合, F$PARSE 関数はたいてい空文字列 ("") を返します。たとえば,ファイル指定が間違った構文である場合や,指定したディスクやディレクトリが存在しない ( 結果としてファイル指定が論理的に間違っている ) 場合は,空文字列が返されます。ただし,フィールド名を指定する,または解析タイプに SYNTAX_ONLY を指定すると,適切な情報が返されます。
ファイル指定
解析するファイル指定を含む文字列を指定します。ファイル指定にはワイルドカード文字を使用できます。この場合, F$PARSE により戻されるファイル指定もワイルドカード文字を含んでいます。
省略時のファイル指定
省略時のファイル指定を含む文字列を指定します。ファイル指定 引数で省略されているフィールドがあると,省略時のファイル指定の対応するフィールドで置換されます。この結果,まだ省略されているフィールドは, 関連ファイル指定 引数の対応するフィールドで置換されます。
関連ファイル指定
関連するファイル指定を含む文字列を指定します。ファイル指定 引数と 省略時のファイル指定 引数の両方で,省略されているフィールドがあると,関連ファイル指定の対応するフィールドで置換されます。
フィールド
ファイル指定のフィールド名を含む文字列を指定します。この引数を指定すると,F$PARSE 関数は,ファイル指定の特定の部分を戻します。次のフィールド名のいずれか 1 つを指定できます ( 省略することはできません )。
NODE ノード名 DEVICE 装置名 DIRECTORY ディレクトリ名 NAME ファイル名 TYPE ファイル・タイプ VERSION ファイル・バージョン番号
解析タイプ
実行される解析タイプを指定します。省略時の設定では,F$PARSE 関数は,ファイル指定で指定したディレクトリが,ファイル指定で指定した装置上に存在するかどうか確認します。ただし,フィールド 引数を指定した場合は,ディレクトリの存在は確認しません。装置とディレクトリは,引数の1つに明示的に指定できます。また,省略しても省略時の値として使用されます。また,省略時の設定で F$PARSE 関数は,他の引数として指定されている論理名があると,そのは論理名を変換します。 CONCEALED 属性を持つ論理名を検出すると,F$PARSE 関数は,反復変換を停止します。
次のキーワードを使用すると, F$PARSE 関数がファイル指定を解析する方法を変更できます。
NO_CONCEAL ファイル指定の一部に指定された論理名変換時に, "conceal" 属性を無視する。つまり,隠し論理名が検出されても,論理名変換は終了しない。 SYNTAX_ONLY ファイル指定の構文だけをチェックし,指定したディレクトリが装置上に確認するかどうかは確認しない。
F$PARSE 関数は,RMS サービスの $PARSE を使用して,ファイル指定を解析します。 $PARSE についての詳細は,『OpenVMS Record Management Services Reference Manual』を参照してください。F$PARSE 関数を使用する場合,最後に指定した引数の後ろに指定するオプションの引数を省略することができます。ただし,最後に指定する引数の前 ( 左 ) に指定するオプションの引数を省略する場合は,プレースホルダーとしてコンマ (,) を入れます。
ファイル指定 引数で装置名およびディレクトリ名を省略すると, F$PARSE 関数は,まず 省略時のファイル指定 引数,次に 関連ファイル指定 引数から,省略時設定の名前を補います。どちらの引数からも名前を得られない場合は,現在の省略時の設定を使用します。
ノード名,ファイル名,ファイル・タイプ,またはバージョン番号を省略すると, F$PARSE 関数は,まず 省略時のファイル指定 引数,次に 関連ファイル指定 引数から省略時設定を補います ( ただし,関連ファイル指定 引数からは,バージョン番号を補えない点に注意してください )。どちらの引数からも名前を与えられない場合は, F$PARSE はこれらのフィールドに空指定を戻します。
解析操作は,指定されたファイル指定が構文的に正しいかどうかを単に確認します。ファイル指定のセマンティックスは確認しません。たとえば,バージョン番号などのフィールドは,オプションでハイフン (-) が前に付く 5 桁以下の数値であることが確認されますが,範囲はチェックされません。ファイル指定のセマンティックスは, Open や Create などのサービスでチェックされます。
#1 |
---|
$ SET DEF DISK2:[FIRST] $ SPEC = F$PARSE("JAMES.MAR","[ROOT]",,,"SYNTAX_ONLY") $ SHOW SYMBOL SPEC SPEC = "DISK2:[ROOT]JAMES.MAR;" |
この例では,F$PARSE 関数は,JAMES.MAR というファイルの拡張ファイル指定を戻します。この例では,SYNTAX_ONLY キーワードを指定し, F$PARSE 関数は構文だけを調べ, [ROOT] ディレクトリが DISK2 に存在するかどうかは調べないよう指定しています。
省略時の装置とディレクトリは,DISK2:[FIRST] です。割り当て文の 省略時のファイル指定 引数に [ROOT] ディレクトリが指定されているので,[ROOT] ディレクトリは出力文字列のディレクトリ名として使用されます。出力文字列に戻される省略時の装置は DISK2 であり,このファイルの省略時のバージョン番号は空文字です。 JAMES.MAR と ROOT という引数は文字列リテラルなので,引用符("")で囲まなければなりません。
構文だけの解析をするように指定せず,しかも[ROOT]が DISK2 に存在しない場合には,空文字列が戻されます。
#2 |
---|
$ SET DEFAULT DB1:[VARGO] $ SPEC = F$PARSE("INFO.COM",,,"DIRECTORY") $ SHOW SYMBOL SPEC SPEC = "[VARGO]" |
この例では,F$PARSE 関数は, INFO.COM というファイルのディレクトリ名を戻します。引数リストで 省略時のファイル指定 引数と 関連ファイル指定 引数が省略されているので,それぞれの位置にコンマ (,) を指定しなければなりません。
#3 |
---|
$ SPEC= F$PARSE("DENVER::DB1:[PROD]RUN.DAT",,,"TYPE") $ SHOW SYMBOL SPEC SPEC = ".DAT" |
この例では,F$PARSE 関数を使用して,ノード名を含むファイル指定を解析しています。 F$PARSE 関数は,DENVER というリモート・ノードの, RUN.DAT というファイルのファイル・タイプである,DAT を戻します。
目次 | 索引 |
|