文字列内の部分文字列の出現する整数文字の位置を返します。
$FIND 関数のフォーマット:
$F[IND](expr1,expr2[,intexpr])
1番目の式 (expr1) は、$FIND()が部分文字列を検索するその中の、文字列を指定します。
2番目の式(expr2)は、$FIND()が検索するための部分文字列を指定します。
オプションの整数式(intexpr)は、$FIND() が見つける検索の開始位置を識別します。もしこの引数が欠落している ゼロ(0)または負 の場合、$FIND() は、文字列の最初の位置で検索を開始します。
もし $FIND() が部分文字列を検索するならば、それは部分文字列の最後の文字の後の位置を返します。もし部分文字列の末尾が文字列 (expr1) の末尾と一致する場合、それは文字列の長さに1を加えたもの( $L(expr1)+1)に等しい整数を返します。
もし $FIND()が部分文字列を検索していない場合、それはゼロ(0)を返します。
プロセスがUTF-8モードで起動する場合、$FIND() は、UTF-8 エンコードとして文字列の引数を解釈します。VIEW "BADCHAR" が"有効で、それが不正な形式の文字を検出したときに、$FINDは実行時エラーを生成しますが、しかし、それは引数で指定された範囲の後に入る文字を処理しません。
$ZFIND() は、$FIND() のZと同等の関数です。VIEW "BADCHAR" と$ZCHSETの設定にかかわらず、$ZFIND() は引数を(文字列ではなく)一連のバイトとして解釈し、バイト指向の$FIND() 操作を実行できます。 詳細は、 “$ZFind()”を参照してください。
$FIND() は、部分文字列を検索するツールを提供しています。包含演算子( [ ) と2つの引数の$LENGTH() は、関連する関数を提供する他のツールです。
例:
GTM>write $find("HIFI","I") 3 GTM>
この例では、文字 "I" が最初に出現する位置をWRITEする $FIND() を使用しています。3の返り値を、"found:見つかった" 部分文字列の後の位置を与えます。
例:
GTM>write $find("HIFI","I",3) 5 GTM>
この例では、文字位置3で始まる 文字 "I" の次の出現の位置をWRITEする$FIND() を使用しています。
例:
GTM>set t=1 for set t=$find("BANANA","AN",t) quit:'t write !,t 4 6 GTM>
この例では、"BANANA" の中に "AN" がすべての出現する場所を検索する$FIND() のループを使用しています。$FIND() は、"AN" を2回出現した後の位置の 4と6を 返します。
例:
GTM>set str="MUMPS databases are hierarchical" GTM>Write $find(str," ") 7 GTM>Write $find(str,"Z") 0 GTM>Write $find(str,"d",1) 8 GTM>Write $find(str,"d",10) 0
上記の例では、部分文字列の文字列を検索し、部分文字列の位置を検索した後に、次の文字の位置に対応する整数値を返します。