日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS
ドキュメント・ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
    ≫ コマンド一覧
    ≫ レキシカル関数
付録 A:廃止されたコマンド
付録 B:DCL整数表現の範囲を超える数値の処理
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引

F$LOCATE

文字列に含まれる特定の部分を探し,最初の文字のオフセットを整数値で戻します。オフセットとは,文字列の先頭を基準にした文字 ( 1 文字または部分文字列 ) の位置です。オフセットとは,文字列の開始位置を基準にして,文字,または部分文字列までの位置を示します。文字列の 1 文字目は,常に文字列の先頭からオフセット 0 の位置にあります。

部分文字列が見つからないと,F$LOCATE 関数は,検索文字列の長さ ( 文字列の最後の文字のオフセットに 1 を加算した値 ) を戻します。


形式

F$LOCATE (部分文字列,文字列)

戻り値


部分文字列引数のオフセットを示す整数値。オフセットとは,文字列の先頭を基準にした文字 ( 1 文字または部分文字列 ) の位置です。文字列の 1 文字目は,常に文字列の先頭からオフセット0の位置にあります ( 文字列の先頭は,常に左端の文字です )。

部分文字列引数がない場合には,F$LOCATE 関数は,文字列の最後の文字のオフセットより, 1 だけ大きなオフセットを戻します ( これは文字列の長さに相当します )。


引数



部分文字列

文字列 引数に指定した文字列から検索したい文字列を指定します。

文字列

F$LOCATE が編集する文字列を指定します。

#1
$ FILE_SPEC = "MYFILE.DAT;1"
$ NAME_LENGTH = F$LOCATE(".",FILE_SPEC)
 

この例では,F$LOCATE 関数は,文字列の先頭を基準にした,文字列中のピリオド (.) の位置を戻します。ピリオドはオフセット 6 の位置に存在するため, 6 という値がシンボル NAME_LENGTH に割り当てられます。また,NAME_LENGTH は,MYFILE.DAT というファイル指定のファイル名の部分の長さ,つまり 6 に等しくなります。

部分文字列引数であるピリオドは,文字列リテラルとして指定されているので,引用符 (" ") で囲まれています。しかし,FILE_SPEC 引数はシンボルであるため,引用符で囲む必要はありません。このシンボルは,関数を処理しているときに,自動的に現在の値に置き換えられます。

#2
$ INQUIRE TIME "Enter time" 
$ IF F$LOCATE(":",TIME) .EQ. F$LENGTH(TIME) THEN - 
  GOTO NO_COLON 
 

これは,コマンド・プロシージャの一部です。この中では,F$LOCATE 関数の結果と F$LENGTH 関数の結果を比較し,結果が等しいかどうかを調べています。1 文字または部分文字列が,ある文字列に含まれているかどうかを判断するときに,この方法をよく使用します。

この例では,INQUIRE コマンドが,時刻の値の入力を要求するプロンプトを表示し,利用者が入力した時刻をシンボル TIME に割り当てます。 IF コマンドは,プロンプトに対する応答として入力された文字列に,コロンが含まれているかどうかを調べます。 F$LOCATE 関数から戻された値が,F$LENGTH 関数から戻された値と等しい場合には,コロンは文字列の中に含まれていません。 F$LOCATE 関数と F$LENGTH 関数はどちらも整数値を戻すため, (.EQS.演算子ではなく ) .EQ. 演算子が使用されています。

部分文字列引数であるコロンは文字列リテラルであるため,引用符で囲まれています。しかし,シンボル TIME は,引用符で囲む必要はありません。これは,文字列式として自動的に評価されるためです。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.