[要望]文字列検索して、マークを付ける機能No.00967
プックン さん 00/12/18 18:47
 
[要望]文字列検索して、マークを付ける機能

秀まるおさま

    受信したメールの中に、ユーザが定義した文字列があれば
    受信したメールにマークを付ける機能がほしいです。
    メーリングリストとかで、複数のメールがとどくような使用方法をしている
    とき、
    中身を流し読みしただけでは自分に回答を求めるような内容があっても
    気づかないときがある。
    定義した文字列があればマークしてくれていれば、そのメールを優先して
    みるので自分に回答を求めているような内容を見逃す機会が減ると思うの
    です。
   
    ひょっとしてマクロでできそうな気もするのですが、マクロで"マークを付
    ける"といったことができないかな?
   
    下記のような処理プロセスはできないでしょうか?
    1.
    文字列"プックン"を定義する。
        この定義した文字列を、マクロで検索する。
        検索する範囲は、"さっき受信したメール"のフラグが立っている
        ファイルを探します。
    2.
    検索文字列があれば、メールに"マーク"を付ける
    3.
    "さっき受信したメール"のフラグが立っているファイルすべて
    に対してこの繰り返しをする。

[ ]
RE:00967 [要望]文字列検索して、マークを付ける機能No.00970
きいろいまふらあ さん 00/12/18 19:53
 
> 秀まるおさま

…ではありませんが。:-p

>     ひょっとしてマクロでできそうな気もするのですが、マクロで"マークを付
>     ける"といったことができないかな?

SwitchMarkってのがありますね。

$$myStr = "プックン";
#n = 最初の「さっき受信したメール」を選択  //SelectRecvMail
While(#n == true){
 メール内で$$myStrを検索
 if(みつかった){
  if(マークされていない){                //IsMarked
   マークする                           //SwitchMark
  }
 }
 #n = 次の「さっき受信したメール」を選択  //SelectRecvMail
}
ってなアルゴリズムでいけますかね?
マクロお書きになるようなので、ヒントだけです。
コーディングはお楽しみください。(^_^)
右の「//」のとこに、そこで使うTKinfo.dllの関数書いときました。

検索は普通の(秀丸マクロの)検索をすればいいですね。

[ ]
RE:00967 [要望]文字列検索して、マークNo.00973
ひろ さん 00/12/18 19:59
 
 プックンさん今日は、ひろです。
>     受信したメールの中に、ユーザが定義した文字列があれば
>     受信したメールにマークを付ける機能がほしいです。
 まず要望についてですが、ユーザ・インターフェース的には、「メールの振り分
け」に「マークを付ける」があればよいのかな?

 次に現在の機能では、「検索して一覧作成」を使えば、ぷっくんさんの行
いたいことは、ある程度早く出来そうですね。
 これをやっていて気付いたのですが、「検索して一覧作成」にあたるマク
ロコマンドはありませんね。<-用途が思いつかないので、要望というわけで
はありません。
 ##あと一つ気付いた点があるが、バグかどうか解らないので、MES/1 に投稿します。

>     下記のような処理プロセスはできないでしょうか?
 マクロの話ですが、このルーチンだとメールに移動した時点で、未読が解
除されてしまう可能性があるので、そのチェックが必要でしょうね。

[ ]
RE:00970 [要望]文字列検索して、マークを付ける機能No.01000
プックン さん 00/12/19 12:06
 
きいろいまふらあさん 今日は

きいろまふらあさんに教えていただいた情報を元に
マクロを作ってみました。期待の動作ができるようにになりました。(^○^)
皆さんの参考になるかどうかわかりませんが、下記にマクロを記載します。


//-------------- 2000.12.19 by プックン--------------
call Turukame;
//

    $$myStr = "プックン|ぷっくん|pukkun";

    //最初の「さっき受信したメール」を選択
    #n = dllfunc("SelectRecvMail");         //返り値 :選択に成功した場合は1、
失敗した場合は0
    if(#n != 1){
        message "受信メールの選択に失敗しました。";
        goto LEND;
    }

while(#n == 1){                 //さっき受信したメールすべてを処理する
    //メール内で$$myStrを検索
    moveto 0 ,-1;               //本文の先頭に移動
    golineend2 ;                //行の最後に移動
    searchdown $$myStr,regular; //下方向検索
    if(result){                 //検索文字列があったとき
        //対象のメールが"マークされていない"かチェックする
        #marked =dllfunc("IsMarked");
        if(!#marked){
            //マークする
            #n =dllfunc("SwitchMark");
        }
    }
    //次の「さっき受信したメール」を選択
    #n = dllfunc("SelectRecvMail");
}

LEND:
    freedll;
    endmacro;

Turukame:   //鶴亀メール起動チェック&DLLロード
// modify pukkun 2000.11.07
//秀シリーズサポートHPより 抜粋
    // DLL を Load する
    openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
    if( !result ) {
    message "鶴亀がインストールされてないです (^^;)\n"+$info;
    endmacro;
    }

    loaddll "tkinfo.dll";
    if( !result ) {
    message "DLLロードに失敗\n"+$info;
    endmacro;
    }
    return;


[ ]
RE:01000 [要望]文字列検索して、マークを付ける機能No.01005
きいろいまふらあ さん 00/12/19 13:36
 
> きいろまふらあさんに教えていただいた情報を元に
> マクロを作ってみました。期待の動作ができるようにになりました。(^○^)

へ?ほんとにできちゃいました?(^^;
結構適当に書いていたので、きっと何回かやりとりするんかなあと、
覚悟していたんですが。

ひろさんの指摘通り、設定によっては未読→既読になってしまうかも。
都度選択する前の状態に戻す処理は……私家版ならいらないかな。

未読→既読はいずれにしてもそのメールが選択・表示されたタイミングで
処理してると思うので、IsUnreadとSwitchUnreadを使えば、
わりと簡単に実装できるのかもしれませんね。

いずれにしてもお役に立てたようでよかったです。

[ ]
RE:01000 [要望]文字列検索して、マークNo.01009
ひろ さん 00/12/19 15:06
 
 プックン今日は、ひろです。
> マクロを作ってみました。期待の動作ができるようにになりました。(^○^)
 プックンの期待どうりということなので、以下参考までに。

 IsUnread, SwitchUnread を使って、未読の処理を加えたほうが安全です。
SelectRecvMail の直前に入れると良いでしょう。
>     moveto 0 ,-1;               //本文の先頭に移動
この操作で、ヘッダと本分の境界に移動し、この行はは改行だけのはずなので、
>     golineend2 ;                //行の最後に移動
この処理はあえて付ける必要はないのではないでしょうか?

>     searchdown $$myStr,regular; //下方向検索
 これを見て実際に試して解ったこと。
 本体で検索ダイアログを表示させた場合、「検索範囲」が初期状態では、
必ず「現在のフォルダ」にるが、マクロの searchdown は「現在のメール」
の扱いになっている。エディタ・ウィンドウでは秀丸と同じなので、「鶴亀
メール内」とは言いきれないが、正式公開時には、ヘルプの「鶴亀メール内
秀丸と普通の秀丸とのマクロ動作の違い」に記載が欲しい。また「検索範囲」
に「現在のフォルダ」を指定したい場合、DLL 関数が必要になる?。
->秀まるお様

>     openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
>     if( !result ) {
>     message "鶴亀がインストールされてないです (^^;)\n"+$info;
>     endmacro;
>     }
 一応 closereg の処理をしたほうが安全。

[ ]
RE:00973 [要望]文字列検索して、マークNo.01024
プックン さん 00/12/19 19:53
 
ひろさん 今日は

> まず要望についてですが、ユーザ・インターフェース的には、「メールの振り
>分け」に「マークを付ける」があればよいのかな?
ずばりその機能がほしいです。
この機能がマクロから実行できればGoodです。

> 次に現在の機能では、「検索して一覧作成」を使えば、ぷっくんさんの行
>いたいことは、ある程度早く出来そうですね。

マクロからこれを実行して、その一覧をすべてマークできるなら
したいことはできるかな。メニュー操作でできても、あまりうれしくないです。
受信したときに、"定義した文字列が記述されているか"といったことが
わかれば便利だなと考えています。

> マクロの話ですが、このルーチンだとメールに移動した時点で、未読が解
>除されてしまう可能性があるので、そのチェックが必要でしょうね。
たしかにチェックが解除されてしまいますね。
とりあえず私のしたい機能としては、マクロで実現できたのですが
チェックが解除されると、マクロを実行したあとに再度「さっき受信したメール」
のフラグを利用したマクロを使いたいときにちょっと不便ですね。


[ ]
RE:01009 [要望]文字列検索して、マークNo.01047
プックン さん 00/12/20 12:01
 
ひろさん今日は プックンです

> IsUnread, SwitchUnread を使って、未読の処理を加えたほうが安全です。
>SelectRecvMail の直前に入れると良いでしょう。

このご指摘について質問します。
未読の処理とは、具体的にはなにをしたらいいのでしょうか?
未読かどうかしらべる関数と未読を切り替える関数を記述してくださってい
ます。未読かどうかしらべて、それを切り替える必要性ってなんでしょうか?

>この処理はあえて付ける必要はないのではないでしょうか?
たしかにそうかもしれませんね。

> 一応 closereg の処理をしたほうが安全。
忘れてました。(^_^;)
ご指摘ありがとうございます。

[ ]
RE:01047 [要望]文字列検索して、マークNo.01050
きいろいまふらあ さん 00/12/20 13:55
 
> > IsUnread, SwitchUnread を使って、未読の処理を加えたほうが安全です。
> >SelectRecvMail の直前に入れると良いでしょう。

私も同じことを指摘してたのでこの場を借りて……。

> ます。未読かどうかしらべて、それを切り替える必要性ってなんでしょうか?

先のマクロ実行前に未読だったメールが実行後既読になってしまうような
設定の場合(だけ)、実行前に未読のメールは実行後も未読の方が
いいのかな、と思ったわけなんですが(多分ひろさんも同じ)、

よく考えたら、SelecrRecvMailしなきゃそのメールにたどり着けないわけで、
とすると、IsUnreadを使っても(上に書いたような設定になっている場合)
常に 0 が返ってきてしまうので、そもそも未読だったかどうかが
調べられないです。うむう。

ファイルの属性調査/設定の関数ってもうちょっと拡張されるというような
話があった気がする(発言が見つからない)のですが、IsHotなんていうのが
あると、今回の場合別のアプローチができるかもしれないですね。
もっとも、相当遅くなりますけど。

むむむ。

[ ]
RE:01024 [要望]文字列検索して、マークNo.01061
ひろ さん 00/12/20 17:41
 
 プックン今日は、ひろです。
> > まず要望についてですが、ユーザ・インターフェース的には、「メールの振り
> >分け」に「マークを付ける」があればよいのかな?
> ずばりその機能がほしいです。
> この機能がマクロから実行できればGoodです。
 1011 や変更履歴を見る限りでは、「メールの振り分け」が、拡張される
と思いますので、そちらを待った方がよいかもしれませんね(^^)。

> マクロからこれを実行して、その一覧をすべてマークできるなら
> したいことはできるかな。メニュー操作でできても、あまりうれしくないです。
 確かにプックンは、自動化したいのでしょうから、あまり嬉しくないでしょ
うね。まあ比較的早く出来るということで許してください。

> チェックが解除されると、マクロを実行したあとに再度「さっき受信したメール」
 そうですね「未読」フラグとは別に、「さっき受信したメール」のフラグ
が消えるのは、ヘルプにある通り SelectRecvMail の宿命ですね。

 P.S 前回もでしたが、「さん」を付けていません。だって「プックンさ
ん」って書くと違和感があるんだもの。

[ ]
RE:01050 [要望]文字列検索して、マークNo.01118
プックン さん 00/12/21 18:05
 
きいろいまふらあさん、こんにちは。プックンです。

>私も同じことを指摘してたのでこの場を借りて……。
ご指摘ありがとうございます。

>常に 0 が返ってきてしまうので、そもそも未読だったかどうかが
>調べられないです。うむう。

なかなか奥が深いですね。
自分の使用環境だけでなく、想定できるcaseをいろいろと考えないと
いけないんですね。むずかしいでんな〜。

[ ]
RE:01061 [要望]文字列検索して、マークNo.01119
プックン さん 00/12/21 18:08
 
ひろさんこんにちは プックンです

> 1011 や変更履歴を見る限りでは、「メールの振り分け」が、拡張される
>と思いますので、そちらを待った方がよいかもしれませんね(^^)。

とりあえず、私の作ったマクロを使っておいて
鶴亀メールが対応するのを、首をなが〜くしてまっています。
秀まるおさまはバグ対策に忙しそうなので、じっくりと待ちます。

> 確かにプックンは、自動化したいのでしょうから、あまり嬉しくないでしょ
>うね。まあ比較的早く出来るということで許してください。

許すもなにも、この機能があることすら知らなかったので
教えていただいただけで勉強になりました。情報ありがとうございました。

> そうですね「未読」フラグとは別に、「さっき受信したメール」のフラグ
>が消えるのは、ヘルプにある通り SelectRecvMail の宿命ですね。

そうですね。
仕様なので納得してつかっています。
いまのところフラグが消えることを意識してつかえばなんとか問題なくつかって
るのでいいですが、複数のマクロを組み合わせて使うようになると
不弁になるかも。

> P.S 前回もでしたが、「さん」を付けていません。だって「プックンさ
>ん」って書くと違和感があるんだもの。
もちろんそれで結構ですよ。書かれているわたしも、すごく違和感があった
ので"さん"は付けなくていいです。

[ ]
RE:00967 [要望]文字列検索して、マークを付ける機能No.01281
秀まるお さん 01/01/04 08:50
 
>    受信したメールの中に、ユーザが定義した文字列があれば
>    受信したメールにマークを付ける機能がほしいです。

 一般的なメールソフトの場合は振り分けの機能の中でできるようなので、鶴亀メー
ルでもそういう方向で考えていますが、今のところまだ手つけてません。

 少々お待ちを。

[ ]