あいまい検索API(実用編)(Ver5.00対応版)
■その1:正規表現での検索が必要。
 あいまい検索を実行するには、正規表現での検索が必要です。

 正規表現がそもそもONの場合は、Fuzzy_ConvertFindTarget関数でのfRegularに1を設定して変換すればいいです。
 正規表現がOFFの場合には、Fuzzy_ConvertFindTarget関数でのfRegularに2を設定して変換し、実際の検索にはJre2GetMatchInfo類を使ってください。

 どうしても正規表現を使いたくない場合は、fRegularを0にしてもいいですが、その場合、ユーザー設定の同一視指定ファイル中の、複数文字の同一視指定が実行できなくなります。

 正規表現を使う/使わないに限らず、実際の検索は、JREFUZZYDATA構造体中のpszFindConvedおよびpszTargetConvedを使って実行する必要があります。


■その2:Fuzzy_OpenしてからNOCASESENSEフラグを書き換える
 大文字/小文字の区別をするかしないかは、あいまい検索のオプションとしてではなく、呼び出し元が用意すべきオプションとなってます。
 Fuzzy_Openを呼び出してJREFUZZYDATAを初期化したら、その後すかさずflagsメンバーのFUZZYOPTION_NOCASESENSEフラグを適当に指定してください。


■その3:改行を無視する用
 「改行を無視する」の場合、呼び出し元が複数行の検索対象文字列をまとめてFuzzy_ConvertTargetに渡してやる必要があります。
 呼び出し元は、FUZZYOPTION_NORETURNフラグを見て、もしこそがセットされていたら、
((flags & FUZZYOPTION_NORETURN_MASK) >> FUZZYOPTION_NORETURN_SHIFT) + 1
 の式で得られる値の数だけ改行を含んだ文字列(=上記の式で得られる値にさらに+1した数の行)をまとめてFuzzy_ConvertTargetしてやらないといけないです。
 改行文字は、「\n」つまり、0x0Aの制御文字に変換して渡してください。(\rや\r\nはダメです。JRE32.DLLもそうなってるはず。)



戻る