|
ご希望の動作通りかどうかちょっと自信が無いですが、一応いかのようなマクロに
なりました。「//出力ファイルの名前を先に決める。」の辺りを直してるだけになり
ます。
もしかして番号はずっと歴代で(1日毎に1に戻るんじゃない風に)カウントアッ
プしていきたいってことなら、そういう風に直すことも一応できます。
----------------------------------------------------------------------------
-------
loaddll "tkinfo.dll";
#n = dllfunc("SetJapaneseCodePageMode", 1);
$htmlfile = dllfuncstr("CurrentHeader", "X-Html");
if( $htmlfile == "" ) {
message "X-Html:ヘッダがありません。たぶんこのメールはHTMLメールでは
ありません。";
endmacro;
}
//出力ファイルの名前を先に決める。
#dup = 1;
while(1) {
$outfile = "G:\\" + str(#dup) + "~001~" + dllfuncstr("CurrentDate",
"YYYY_MM_DD") + "~問診票~index.htm";
if( !existfile( $outfile ) ) {
break;
}
#dup = #dup + 1;
}
$htmlfile = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\"+
$htmlfile;
$body = dllfuncstr("LoadStringFromFile", $htmlfile);
if( $body == "" ) {
message "HTMLメールの中身が空っぽか、または読み込みできませんでした。";
endmacro;
}
loaddll "hmjre.dll";
#utf8 = dllfunc("FindRegularNoCaseSense", "<meta[^>]*?charset=utf-8[^>]
*?>", $body, 0);
if( #utf8 >= 0 ) {
loaddll "tkinfo.dll";
#n = dllfunc("NewMail");
#n = dllfunc("SwitchHeaderView", 0);
gofiletop;
beginsel;
gofileend;
delete;
insert "<META HTTP-EQUIV=\"Content-Type\" Content=\"text/html; chars
et=shift-jis\">\n";
insertfile $htmlfile, utf8;
setcompatiblemode 0x00000200;
searchdown "<meta[^>]*?charset=utf-8[^>]*?>", regular, nocasesense;
if( result ) {
delete;
}
saveas $outfile, sjis;
#handle = hidemaruhandle(0);
setactivehidemaru dllfunc("MainWnd");
closehidemaruforced #handle;
message "utf-8からShift-JISに変換して " + $outfile + " に保存しまし
た。";
} else {
loaddll "tkinfo.dll";
#n = dllfunc("SaveStringToFile", $outfile, $body, 0, 0 );
if( #n == 0 ) {
message "ファイルの保存に失敗しました。出力ファイル = " + $outfile;
endmacro;
}
message "HTMLメールの内容を " + $outfile + " に保存しました。";
}
|
|