本文中に書いてある日付をヘッダにNo.18168
さん 04/05/20 20:58
 
石です。

鶴亀メールでスケジュール管理をしたいと思ってます。
いろいろ調べたのですが、マクロで出来るかちょっとわからなかったので教えてくだ
さい。

メールの本文中に書いてある日付、例えば
2004/06/01 16:00
に合わせて、Dateヘッダを書き換えたいと思っているのですが、このようなことは出
来るのでしょうか?

[ ]
RE:18168 本文中に書いてある日付をヘッダNo.18180
秀まるお2 さん 04/05/21 15:30
 
> メールの本文中に書いてある日付、例えば
> 2004/06/01 16:00
> に合わせて、Dateヘッダを書き換えたいと思っているのですが、このようなことは出
> 来るのでしょうか?

 可能ではありますが、マクロだけでは無理だと思います。

 Date:ヘッダの中身は、英語でのそれなりの規約に従った形で記述しないとい
けないので、その辺の変換が難しいと思います。たぶん、ご自身でDLLを作成し
ないと無理じゃないかと思います。

[ ]
RE:18168 本文中に書いてある日付をヘッダNo.18189
山紫水明 さん 04/05/21 22:56
 
 石さん,こんばんは。

》メールの本文中に書いてある日付、例えば
》2004/06/01 16:00
》 に合わせて、Dateヘッダを書き換えたいと思っているのですが、このような
》ことは出来るのでしょうか?

 ご希望のものかどうかわかりませんが,次のようなものでできますか?

//--------------------------------------------------------------------//
if( !selecting ) {
    message "日付を範囲選択してください。";
    endmacro;
}
$date = gettext( seltopx, seltopy, selendx, selendy );
loaddll "TKInfo.dll";
if( dllfunc( "IsTuruKameMain") ) #n = dllfunc( "OpenMail" );
if( readonly ) #n = dllfunc( "EnableEdit" );
$week = "SunMonTueWedThuFriSat";
$mon[1] = "Jan";    $mon[2] = "Feb";    $mon[3] = "Mar";
$mon[4] = "Apr";    $mon[5] = "May";    $mon[6] = "Jun";
$mon[7] = "Jul";    $mon[8] = "Aug";    $mon[9] = "Sep";
$mon[10] = "Oct";   $mon[11] = "Nov";   $mon[12] = "Dec";
$year = leftstr($date, 4);
#month = val(midstr($date, 5, 2));
$day = midstr($date, 8 ,2);
$hour = midstr($date, 11 ,2);
$minute = midstr($date, 14 ,2);
$second = midstr($date, 17 ,2);
if( $second == "" ) $second = "00";
$month = $mon[#month];
$time = $hour + ":" + $minute + ":" + $second + " +0900";
call DateToYou $year, $month, $day;
#you = ##return;
$you = midstr( $week, #you * 3, 3 );
$date = $you + ", " + $day + " " + $month + " " + $year + " " + $time;
#n = dllfunc( "SetHeader", "Date", $date );
save;
quit;
endmacro;

DateToYou:
##year = ##1;
##month = ##2;
##day = ##3;
if ( ##month <= 2 ) {
    ##year = ##year - 1;
    ##month = ##month + 12;
}
##days = ##year * 365 + ##year / 4 + ( 153 * ##month + 2 ) / 5 + ##day;
return ##days % 7;
//--------------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明(ユーザー)

[ ]
RE:18189 本文中に書いてある日付をヘッダNo.18233
さん 04/05/24 21:09
 
石です。

山紫水明さん、ありがとうございます。
本日、試させていただきました。
思い通りのことが出来ました。とても感謝しています。

あとは少しカスタマイズして使用したいと思います。本当にありがとうございました。

[ ]
RE:18233 本文中に書いてある日付をヘッダNo.18254
山紫水明 さん 04/05/25 22:30
 
 石さん,こんばんは。

 先にお示ししたマクロでは曜日が正しく表されないというバグがありました。
念のため,修正したものを以下にあげておきます。
 Ver.3.56 で使用すると画面のちらつきが少なくなるはずです。

     では, (^^)/~
                                        山紫水明(ユーザー)

//------ TKChangeDate.mac ----------------------------------------------//
//  本文中の日付と時刻を範囲選択して実行,ヘッダの日付を変更する
//  対応している日付時刻形式
//      2004/05/24 13:04:04
//      2004年5月24日 13時4分4秒

if( !selecting ) {
    message "日付を範囲選択してください。";
    endmacro;
}
$date = gettext( seltopx, seltopy, selendx, selendy );
if( ascii(rightstr($date,1)) == 10 )
               $date = leftstr($date, strlen($date) - 1);
loaddll "TKInfo.dll";
if( dllfunc( "IsTuruKameMain") ) {
    if( dllfunc("TuruKameVersion") > 355 )
                      #n = dllfunc("SetQuietMode", 1 );
    #n = dllfunc( "OpenMail" );
}if( readonly ) #n = dllfunc( "EnableEdit" );
$week = "SunMonTueWedThuFriSat";
$allmonth = "JanFebMarAprMayJunJulAugSepOctNovDec";
if( strstr($date, "年") > 0 ) {
    $year = leftstr($date, strstr($date, "年"));
    #month = val( midstr($date, strstr($date, "年") + 2, strstr($date, "月")
     - strstr($date, "年") - 2) );
    $day = midstr($date, strstr($date, "月") + 2, strstr($date, "日")
     - strstr($date, "月")  - 2);
    $hour = midstr($date, strstr($date, "日") + 3, strstr($date, "時")
     - strstr($date, "日") - 3);
    $minute = midstr($date, strstr($date, "時") + 2, strstr($date, "分")
     - strstr($date, "時") - 2);
    $second = midstr($date, strstr($date, "分") + 2, strstr($date, "秒")
     - strstr($date, "分") - 2);
    if( strlen($day) == 1 ) $day = "0" + $day;
    if( strlen($hour) == 1 ) $hour = "0" + $hour;
    if( strlen($minute) == 1 ) $minute = "0" + $minute;
    if( strlen($second) == 1 ) $second = "0" + $second;
} else {
    $year = leftstr($date, 4);
    #month = val(midstr($date, 5, 2));
    $day = midstr($date, 8 ,2);
    $hour = midstr($date, 11 ,2);
    $minute = midstr($date, 14 ,2);
    $second = midstr($date, 17 ,2);
}
if( $hour == "" ) $hour = "00";
if( $minute == "" ) $minute = "00";
if( $second == "" ) $second = "00";
$month = midstr( $allmonth, (#month - 1) * 3, 3 );
$time = $hour + ":" + $minute + ":" + $second + " +0900";
call DateToYou val($year), #month, val($day);
#you = ##return;
$you = midstr( $week, #you * 3, 3 );
$date = $you + ", " + $day + " " + $month + " " + $year + " " + $time;
#n = dllfunc( "SetHeader", "Date", $date );
save;
#n = dllfunc("SetMailFlag", "altered", 0);//改変マークをつけない場合
#n = dllfunc("SetQuietMode", 0 );
quit;

DateToYou:
##year = ##1;
##month = ##2;
##day = ##3;
if ( ##month <= 2 ) {
    ##year = ##year - 1;
    ##month = ##month + 12;
}
##dow = ( ##year + ##year / 4 - ##year / 100 + ##year / 400
    + ( 13 * ##month + 8 ) / 5 + ##day ) % 7;
return ##dow;
//--------------------------------------------------------------------//


[ ]
RE:18254 本文中に書いてある日付をヘッダNo.18255
秀まるお2 さん 04/05/25 23:34
 
 すごい、ちからわざですねぇ。

 (っと余計なコメントを付けておく)

[ ]
RE:18254 本文中に書いてある日付をヘッダNo.18338
さん 04/06/01 23:50
 
石です。こんにちは

マクロ修正ありがとうございました。
このマクロのおかげで本当にいろいろ便利になりました。

[ ]