SetFindPackでのfuzzy検索についてNo.40761
styth さん 11/06/21 20:45
 
 以前に質問させて頂いた件で、思ったようにいかないので、再度お聞きします。

    loaddll "TKinfo.dll";
    //1.
    $Subject = dllfuncstr("CurrentHeader", "Subject");
    $MessageID0 = dllfuncstr("CurrentHeader", "Message-ID:");
    //2.
    $Subject =  midstr($Subject, strrstr($Subject, ":")+1);//末尾から検索し
てRe:以降を取得
    $Subject = dllfuncstr("YenEncode", $Subject);
//  #n = dllfunc("SetFindPack", "(\""+$Subject+"\",target=subject), hilight=
0");//@
    #n = dllfunc("SetFindPack", "(\""+$Subject+"\",target=subject, fuzzy), h
ilight=0");//A
    if ( ! dllfunc("FindUp") ) message "Subjectが見つかりません。";
    (http://www.maruo.co.jp/hidesoft/8/x40429_.html#40481より)

 @だとヒットしますが、fuzzyを付けたAには、ヒットしません。
 Subjectは、「26日(日)・・・」という風に()が含まれています。
 携帯メールでは、半角文字を全角にして返してくる場合があるので、fuzzyで
検索したいのですが、よろしくお願いします。

[ ]
RE:40761 SetFindPackでのfuzzy検索についNo.40762
秀まるお2 さん 11/06/21 21:20
 
 テストしてみたらたしかにダメでした。で、調べてみたら、

 「, fuzzy」

 ってだけ指定すると、勝手に正規表現がONの扱いになってました。

 なぜそうなるのかは別として、とりあえずマクロの内容を、

    #n = dllfunc("SetFindPack", "(\""+$Subject+"\",target=subject, fuzzy, no
regular), hilight=0");//A

 とすれば直るようです。とりあえずそれで回避お願いします。


[ ]
RE:40762 SetFindPackでのfuzzy検索についNo.40763
styth さん 11/06/21 21:58
 
> 「, fuzzy」
> ってだけ指定すると、勝手に正規表現がONの扱いになってました。
> なぜそうなるのかは別として、とりあえずマクロの内容を、
>    #n = dllfunc("SetFindPack", "(\""+$Subject+"\",target=subject, fuzzy, n
>oregular), hilight=0");//A
> とすれば直るようです。とりあえずそれで回避お願いします。
 ありがとうございます。うまくいきました。
 fuzzyで, noregular(非正規表現)というのが指定できるんですね。


秀丸エディタマクロsearchdialog,searchup,searchdown文のヘルプに

> regularとnoregularのいずれも指定しない場合は、あいまい検索(fuzzy)の指
>定があるときは自動的にregularの指定になり、あいまい検索の指定がないとき
>は自動的にnoregularの指定になります。

 とのことなんですが、あいまい検索で、非正規表現ができる旨の記載をして頂
けないでしょうか?
 よろしくお願いします。

[ ]
RE:40763 SetFindPackでのfuzzy検索についNo.40767
秀まるお2 さん 11/06/22 08:46
 
 本来でしたら「,fuzzy」だけで勝手に正規表現がONになるのは変えたい仕様で
すが、互換性の維持を考えると今から変えることは難しいです。なので、とりあ
えずこれはこのまま仕様とさせていただきます。

 ヘルプは、たしかにご指摘の通り、正規表現が勝手にONになるようなことはど
こにも書いてありませんでした。ということでこの辺修正させていただきます。


 元々なぜこういう仕様にしたのかというと、これまたご指摘いただいたように、
秀丸エディタのsearch系文に合わせてしまったようです。秀丸エディタでの元々
のあいまい検索はJRE32.DLLの機能を使っていたがために、正規表現OFFとか大文
字/小文字区別無しってのが元々は出来ませんでした。それのなごりをひきずっ
てしまったようです。

[ ]
RE:40767 SetFindPackでのfuzzy検索についNo.40772
styth さん 11/06/23 19:15
 
> ヘルプは、たしかにご指摘の通り、正規表現が勝手にONになるようなことはど
>こにも書いてありませんでした。ということでこの辺修正させていただきます。

>ヘルプのSetFindPackの所で、fuzzyを指定する時の正規表現のON/OFFについての
>説明が間違ってた&説明不足になっていたバグ修正。
 とのことなんですが、キーワードの「SetFindPack」の所を見たんですが、上
記の改変事項の記載がないと思います。
 勘違いしていたら、すみません。

[ ]
RE:40772 SetFindPackでのfuzzy検索についNo.40774
秀まるお2 さん 11/06/23 22:27
 
 すみません。今見直したら書き換わってませんでした。

 ちゃんとヘルプのソースコードは直したんですが、コンパイルし忘れてました。
大変失礼しました。

 次のβ版ではちゃんと直ったヘルプファイルを添付させていただきます。

[ ]