|
マクロの中からTuruKameSearch.exeを起動してる所のコマンドラインにオプシ
ョンを指定すれば、検索条件を多少変更できるようではありますが、「簡略ヘッ
ダ+本文」とか「すべてのヘッダ+本文」って指定は無いみたいです。
とりあえず、スペース区切りで入力された文字列をand検索するだけでしたら、
以下のマクロでどうでしょうか。
------------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;
------------------------------------------------------------------------
とりあえず「すべてのヘッダ+本文」対象で、現在アカウント配下を検索する
マクロの例になります。マクロヘルプのSetFindPackやDoGrepの所を参照いただ
ければ、その辺の条件はお好きなように書き換えできると思います。(聞いても
らっても大丈夫ですが)
「&」、「|」とかの指定も、マクロでがんばればできそうではあります。
|
|