オクテット(8ビットバイト)のシーケンス内のバイトのシーケンスの発生位置の整数のバイト位置を返します。
$ZFIND関数のフォーマット:
$ZF[IND](expr1,expr2[,intexpr])
最初の式(expr)は、バイトシーケンスを検索する$ZFIND() の中でオクテット(8ビットバイト)のシーケンスを指定します。
2番目の式(expr2)は、$ZFIND()が検索するためのバイトシーケンスを指定します。
オプションの整数式(intexpr)は、$ZFIND() が見つける検索の開始位置を識別します。もしこの引数が、無いあるいは ゼロ(0)または負の場合、$ZFIND() は、オクテット(8ビットバイト)のシーケンスの最初の位置から検索を開始します。
もし $ZFIND() がバイトシーケンスを見つけたならば、その最後のバイトの後の位置を返します。もしバイトシーケンスの末尾が、オクテット (expr1) のシーケンスの末尾と一致する場合、expr1のバイトの長さに1 ($L(expr1)+1) を加えたものに等しい整数を返します。
$ZFIND() がバイトシーケンスを見つけられない場合は、ゼロ(0)を返します。
$ZFIND() は、バイトシーケンスを検索するツールを提供しています。包含演算子( [ ) と2つの引数の$ZLENGTH() は、関連する関数を提供する他のツールです。
例:
GTM>write $zfind("主要雨",$zchar(187))
4
GTM>
この例では、数値のバイトコード150の最初に出現する位置をWRITEする $ZFIND() 関数を使用しています。 3のリターンは "見つかった" バイトの後に位置を与える 3 を返します。
例:
GTM>write $zfind("新年好",$zchar(229),5)
8
GTM>
この例では、バイト位置 5 から始まる バイトコード229の次に出現する位置をWRITEする $ZFIND() 関数を使用しています。
例:
GTM>set t=1 for set t=$zfind("新年好",$zchar(230,150,176),t) quit:'t write !,t
4
GTM>
この例では、オクテット ("新年好") のシーケンスで、バイトシーケンス $ZCHAR(230,150,176) がすべて発生する位置を見つけるために$ZFIND() をループで使用しています。$ZFIND() は、バイトシーケンス $ZCHAR(230,150,176) の出現する位置の後を示す4を返します。