検索マクロに関してNo.01170
na311 さん 17/03/11 07:24
 
こんにちは。

以前2012/12/27からのvauhatto さんとの「検索方法に関する要望」の
やり取りの中にあった下記マクロを使用させていただいております。

検索に関して英語、カタカナの大文字、小文字の区分け無く
検索できるマクロに変更するにはどのようにすればいいか
教えていただけないでしょうか。

例:ABCDと入力してABCDも検索出来る様にしたい。
  カタカナと入力してカタカナも検索出来る様にしたい。

お手数ですが宜しくお願い致します。

------------GoogleLikeSearch.mac---------------------------

    loaddll "tkinfo.dll";
     $s = input( "検索文字列は?" );
     if( $s == "" ) {
         endmacro;
     }
     #count = 0;
     $find[0] = $s;
     while(1) {
         #x = strstr( $find[#count], " " );
         #x2 = strstr( $find[#count], " " );
         if( (#x >= 0 && #x2 >= 0 && #x2 < #x) || (#x < 0 && #x2 >= 0) ) {
             #x = #x2;
         }
         if( #x > 0 ) {
             $find[#count+1] = midstr( $find[#count], #x, 9999 );
             $find[#count] = leftstr( $find[#count], #x );
             #count = #count + 1;
             while( 1 ) {
                 if( leftstr( $find[#count], 1 ) == " " ) {
                     $find[#count] = midstr( $find[#count], 1, 9999 );
                 } else if( leftstr( $find[#count], 2 ) == " " ) {
                     $find[#count] = midstr( $find[#count], 2, 9999 );
                 } else {
                     break;
                 }
             }
         } else {
             break;
         }
     }
     #count = #count + 1;
     if( #count > 4 ) {
         message "4つ以上の文字列は検索できません。";
         endmacro;
     }
     #i = 0;
     while( #i < #count ) {
         if( #i != 0 ) {
             $set = $set + " and ";
         }
         $set = $set
             + "(\"" + dllfuncstr("YenEncode", $find[#i] ) + "\", target=all)";
         #i = #i + 1;
     }
     $set = $set + ",subfolder=1,inmail=2";
     $backup = dllfuncstr("GetFindPack");
     #n = dllfunc("SetFindPack", $set);
     #n = dllfunc("DoGrep", "", "受信+送信済み+ユーザー");
     #n = dllfunc("SetFindPack", $backup);
     endmacro;

 ------------------------------------------------------------------------

[ ]
RE:01170 検索マクロに関してNo.01171
秀まるお2 さん 17/03/11 11:27
 
 「あいまい検索」をONにして検索するようにしたらいいと思います。

 あいまい検索の設定ダイアログで、「半角/全角を区別しない」をONにしてお
く必要もありますけども。(検索系コマンドの「あいまい検索」をONにして、右
側の設定ボタンで指定する。)

マクロとしては、

         $set = $set
             + "(\"" + dllfuncstr("YenEncode", $find[#i] ) + "\", target=all)";

 の所を、

         $set = $set
             + "(\"" + dllfuncstr("YenEncode", $find[#i] )
             + "\", target=all, nocasesense, fuzzy)";

 のように、nocasesense(大文字小文字を区別しない)とfuzzy(あいまい検
索)を追加すればいいです。

 「taget=all」の所は「すべてのヘッダ+本文」なのですが、ここは
「target=smallheaderbody」の方が便利かもしれません。詳しくはマクロヘルプ
のSetFindPackの説明が参考になると思います。

[ ]
RE:01171 検索マクロに関してNo.01172
na311 さん 17/03/11 14:05
 
秀まるお2様

早速のご連絡いただき誠にありがとうございます。
無事対応ができました。

確かに下記のように簡略ヘッダ検索のほうが良さそうですので「target=smallheader
body」で登録しました。

> 「taget=all」の所は「すべてのヘッダ+本文」なのですが、ここは
>「target=smallheaderbody」の方が便利かもしれません。詳しくはマクロヘルプ
>のSetFindPackの説明が参考になると思います。

ご親切な対応助かります。

[ ]