前に送信したメール文との比較をしての動No.39265
しゅうとむ さん 10/09/29 10:02
 
お教えください。

現在、受信したメール(GetFolderMailCount受信フォルダ)を、マクロにより文面編
集して( BeginEditMail、SaveEditMail)
自動送信する用途で、秀丸メールを活用しております。

現在作成しているマクロでの作業イメージ

元々の受信メール原文例
−−−−−−−−−−−−−−−−−
平成22年9月28日 10:30
大阪市
天気 晴れ 降雨確率 30%
−−−−−−−−−−−−−−−−−

マクロにて加工して送信する文面
−−−−−−−−−−−−−−−−−
平成22年9月28日 10:30

天気 晴れ 降雨確率 30%
−−−−−−−−−−−−−−−−−

といった感じで、文面の一部を削除(または追加)させてます。


これに、機能を追加したいと考えておりますがどうすればよいでしょうか。

やりたいこと

上記メール送信後(下の例では2時間後)に以下のメールを受信した場合
−−−−−−−−−−−−−−−−−
平成22年9月28日 12:30
大阪市
天気 くもり 降雨確率 40%
−−−−−−−−−−−−−−−−−

以下のようにコメントを追加したいのです。
−−−−−−−−−−−−−−−−−
平成22年9月28日 12:30

天気 くもり 降雨確率 50%
天候が徐々に悪化する見込みです。
−−−−−−−−−−−−−−−−−

次ののメールの受信の場合は
−−−−−−−−−−−−−−−−−
平成22年9月28日 12:30
大阪市
天気 雨 降雨確率 90%
−−−−−−−−−−−−−−−−−
以下のようなコメントを追加したいのです。
−−−−−−−−−−−−−−−−−
平成22年9月28日 12:30

天気 雨 降雨確率 90%
天候が悪化します。
−−−−−−−−−−−−−−−−−

要は、直前に送信した文面と、次に受信した文面を比較させて
特定行(指定行)の内容が、変化している場合に
変化内容にて、追加するコメントを選択(
または変化部分を抽出)して、付け加える
動作をさせたいのです。

マクロ作成のアドバイスをいただけませんでしょうか。
よろしくお願いいたします。

[ ]
RE:39265 前に送信したメール文との比較をNo.39266
秀まるお2 さん 10/09/29 11:14
 
 かなり高度なことをされているのですね。

 マクロで必要なことは、つまり、前回のマクロ実行時と今回のマクロ実行時で
「降水確率」の値を比較するということになって、そのためには、まずは前回の
降水確率をどこかに覚えておく仕組みが必要かと思います。

 それには、レジストリを使うかiniファイルを使うかって形になると思います。


 とりあえず、降水確率を取り出すマクロとしては、

    if( browsemode ) browsemodeswitch;
    gofiletop;
    searchdown2 "降雨確率";
    #percent = 0;
    if( result ) {
        if( selecting ) escape;
        right 5;
        while( code >= '0' && code <= '9' ) {
            #percent = #percent * 10 + code - '0';
            right;
        }
    }

 ってな具合になって、その値をiniファイルに保存するには、

    loaddll "tkinfo.dll";
    $ini = dllfuncstr("HomeDir") + "TestMacro.ini";
    writeininum $ini, "Section", "Key", #percent;

 とかすればいいと思います。

 前回の値と比較するには、例えば

    #percentPrev = getininum( $ini, Section", "Key" );
    if( #percent > #percentPrev ) {
        insert "天候が徐々に悪化する見込みです。";
    } else if(
    ....

 みたいにしたらいいんじゃないかと思います。

 レジストリを使うとしたら、openreg/writeregnum/getregnumとかを使う形に
なります。


[ ]
RE:39266 前に送信したメール文との比較をNo.39282
しゅうとむ さん 10/09/30 19:33
 
アドバイスありがとうございます。

iniファイルに記録して
作業させる方向で、試行してみます。

うまく動作させられるようがんばります。

[ ]