振り分けルールの最終利用日No.41709
kusakabe さん 11/10/21 19:02
 
振り分けルールが多数あるので、半年に1回ほど
未利用となっているルールを確認し削除したりしています。

現在は振り分けルールとフォルダへの振り分け状況を確認
しながら実施していますが、振り分けルールの最終利用日を
簡単に確認する方法はありますでしょうか。

もしできるようでしたら設定のダイアログで確認できると
うれしいです。


[ ]
RE:41709 振り分けルールの最終利用日No.41718
秀まるお2 さん 11/10/23 16:19
 
 「全般的な設定・上級者向け・動作の記録」の中にある「振り分け記録を
filterlog.txtファイルに記録する」をONにしておいて、そのログファイルを使
って調べる方法はあります。

 それ以外にはいい方法は無いと思います。

> もしできるようでしたら設定のダイアログで確認できると
> うれしいです。

 振り分けログから一番最新の日付を拾ってくるような機能なら作ってもいいか
なぁという気はします。

 とりあえずfilter.txtファイル(秀丸メールの振り分け設定ファイル)を秀丸
エディタで開いて、そこからfilterlog.txtファイル中の最新日付を探すような
マクロなら作って差し上げることはもっと簡単に出来るかなぁと思いますが、そ
ういう作戦もどうでしょうか。

[ ]
RE:41718 振り分けルールの最終利用日No.41733
kusakabe さん 11/10/24 15:36
 
ありがとうございます。
頻繁に使用するわけではないので、マクロをご提供いただける
ようでしたら、それを使用させていただきたいと思います。

[ ]
RE:41733 振り分けルールの最終利用日No.41734
秀まるお2 さん 11/10/24 18:19
 
 斉藤秀夫です。

 とりあえず作ってみたマクロですが…。

 filterlog.txtファイルがあればうまく動作するはずということで…。テスト
お願いします。

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $path = dllfuncstr("HomeDir") + $account + "\\filter.txt";
    #n = dllfunc("NewMail");
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #n = dllfunc("SwitchHeaderView", 0);
    insertfile $path;
    replaceallfast "^\\t.*\\n", "", regular, casesense;
    replaceallfast "\\t.*$", "", regular, casesense;
    gofiletop;
    #listhidemaru = hidemaruhandle(0);
    #n = dllfunc("NewMail");
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #n = dllfunc("SwitchHeaderView", 0);
    insertfile dllfuncstr("HomeDir") + "filterlog.txt";
    #loghidemaru = hidemaruhandle(0);

    call RegularEncode $account;
    $accountencode = $$return;

    while(1) {
        setactivehidemaru #listhidemaru;
        golinetop2;
        #x = x; #y = y;
        golineend2;
        $find = gettext( #x, #y, x, y );
        if( $find == "" ) {
            break;
        }
        call RegularEncode $find;
        $find = $$return;
        $date = "";
        setactivehidemaru #loghidemaru;
        gofiletop;
        searchdown2 "\\t" + $accountencode + "\\t.+ヒット\\([0-9]+\\):"
                 + $find + "\\t", regular;
        if( result == yes ) {
            golinetop2;
            $date = gettext( 0, y, 10, y );
        }
        setactivehidemaru #listhidemaru;
        golineend2;
        if( $date != "" ) {
            insert "\t" + $date;
        } else {
            insert "\t見つからず";
        }
        golineend2;
        right;
        if( !result ) {
            break;
        }
        golinetop2;
    }
    closehidemaruforced #loghidemaru;
    gofiletop;
    message "検索完了";
    endmacro;

RegularEncode:
    $$result = "";
    ##i = 0;
    while(1) {
        $$c = wcsmidstr( $$1, ##i, 1 );
        if( $$c == "" ) {
            break;
        }
        if( $$c == "\\"
         || $$c == "["
         || $$c == "]"
         || $$c == "."
         || $$c == "*"
         || $$c == "+"
         || $$c == "("
         || $$c == ")"
         || $$c == "^"
         || $$c == "|"
         || $$c == "$"
         || $$c == "\"" ) {
            $$result = $$result + "\\";
        }
        $$result = $$result + $$c;
        ##i = ##i + 1;
    }
    return $$result;

[ ]
RE:41734 振り分けルールの最終利用日No.41745
kusakabe さん 11/10/26 16:46
 
マクロのご提供ありがとうございます。
動作確認をさせて頂きました。
今後はこのマクロで振り分けルールの整理ができそうです。

欲を言わせていただくと、私の設定は
「新規メール時は毎回テンプレートを選択する」
にしているため、マクロを実行するとテンプレート選択が
2回表示されます。
もし表示されないようにできるのであれば、
お時間あるときにご対応いただけますと幸いです。

[ ]
RE:41745 振り分けルールの最終利用日No.41748
秀まるお2 さん 11/10/26 17:50
 
 「新規メール時は毎回テンプレートを選択する」がONだとNewMail関数呼び出
しで毎回テンプレート選択か出てきてしまうのは、ちょっとまずい問題のようで
す。

 これはマクロで回避することが困難なので、秀丸メール側の仕様変更で対応さ
せていただきます。つまり、NewMail関数呼び出しされた場合は、設定に関係な
く、テンプレート選択のウィンドウは出ないようにしてしまいます。

 次のV5.72β19からそのように変更させていただきます。

[ ]
RE:41734 振り分けルールの最終利用日No.41775
Micky さん 11/11/01 12:17
 
まいどお世話になります。
横から失礼します。

私もこの機能がほしいと思いマクロ使わせていただきました。
が、最近使ったはずのものがえらい古い日付が出てきました。

秀まるお2さん write:

マクロの40行目付近
>         gofiletop;
>         searchdown2 "\\t" + $accountencode + "\\t.+ヒット\\([0-9]+\\):"
>                  + $find + "\\t", regular;
>         if( result == yes ) {
>             golinetop2;
>             $date = gettext( 0, y, 10, y );
>         }

filterlog.txtって最後に行追加で更新されているように思うのですが、
(少なくとも手元のfilterlog.txtは新しいものが下に来ています)
このマクロでは最新ではなく、最初に使用された日になりませんか?
こちらの結果はそう見えます。

  gofileend;
  serchup2...
とすればよいでしょうかね。

あと、合成していた場合はヒットせず、「見つからず」となりました。

p.s.
長いこと読めずにたまっていたので古いスレッドを起こしますがご容赦願います。

[ ]
RE:41775 振り分けルールの最終利用日No.41782
秀まるお2 さん 11/11/01 18:34
 
 すみません。たしかに検索は一番下から上方向にやらないとダメでした。

 それと、合成したのがヒットしないのはログの検索方法がいまいちなせいだと
思います。

 調べて直してまたここに書き込みさせていただきます。

[ ]
RE:41782 振り分けルールの最終利用日No.41785
秀まるお2 さん 11/11/01 19:04
 
 改良版です。(今度こそ大丈夫)


    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $path = dllfuncstr("HomeDir") + $account + "\\filter.txt";
    #n = dllfunc("SetAutoPushTimerMilli", 1, "");
    #n = dllfunc("NewMail");
    #n = dllfunc("StopAutoPushTimer");
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #n = dllfunc("SwitchHeaderView", 0);
    insertfile $path;
    replaceallfast "^\\t.*\\n", "", regular, casesense;
    replaceallfast "\\t.*$", "", regular, casesense;
    gofiletop;
    #listhidemaru = hidemaruhandle(0);
    #n = dllfunc("SetAutoPushTimerMilli", 1, "");
    #n = dllfunc("NewMail");
    #n = dllfunc("StopAutoPushTimer");
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #n = dllfunc("SwitchHeaderView", 0);
    insertfile dllfuncstr("HomeDir") + "filterlog.txt";
    #loghidemaru = hidemaruhandle(0);

    call RegularEncode $account;
    $accountencode = $$return;

    while(1) {
        setactivehidemaru #listhidemaru;
        golinetop2;
        #x = x; #y = y;
        golineend2;
        $find = gettext( #x, #y, x, y );
        if( $find == "" ) {
            break;
        }
        call RegularEncode $find;
        $find = $$return;
        $date = "";
        setactivehidemaru #loghidemaru;
        gofileend;
        searchup "\\t" + $accountencode + "\\t.+(ヒット|合成)\\([0-9]+\
\):"
                 + $find + "\\t", regular;
        if( result == yes ) {
            golinetop2;
            $date = gettext( 0, y, 10, y );
        }
        setactivehidemaru #listhidemaru;
        golineend2;
        if( $date != "" ) {
            insert "\t" + $date;
        } else {
            insert "\t見つからず";
        }
        golineend2;
        right;
        if( !result ) {
            break;
        }
        golinetop2;
    }
    closehidemaruforced #loghidemaru;
    gofiletop;
    message "検索完了";
    endmacro;

RegularEncode:
    $$result = "";
    ##i = 0;
    while(1) {
        $$c = wcsmidstr( $$1, ##i, 1 );
        if( $$c == "" ) {
            break;
        }
        if( $$c == "\\"
         || $$c == "["
         || $$c == "]"
         || $$c == "."
         || $$c == "*"
         || $$c == "+"
         || $$c == "("
         || $$c == ")"
         || $$c == "^"
         || $$c == "|"
         || $$c == "$"
         || $$c == "\"" ) {
            $$result = $$result + "\\" + $$c;
        } else if( $$c == "@" ) {
            $$result = $$result + "(@|\x7F)";
        } else {
            $$result = $$result + $$c;
        }
        ##i = ##i + 1;
    }
    return $$result;

[ ]
RE:41785 振り分けルールの最終利用日No.41786
Micky さん 11/11/01 19:35
 
まいどお世話になります。

秀まるお2さん write:

>  改良版です。(今度こそ大丈夫)
合成もうまくヒットするようになりました。
ありがとうございます。

>         searchup "\\t" + $accountencode + "\\t.+(ヒット|合成)\\([0-9]+\
> \):"
エラーになるので、ここの改行だけ取りました。

[ ]