あいまい検索API(実用編)(Ver5.34対応版)
- ■その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もそうなってるはず。)