V4.76β7No.00299
秀まるお さん 07/04/18 17:04
 
 V4.76β7をアップロードしました。またお願いします。

http://www.hidemaru.interlink.or.jp/software/bin/hmmail476b7_signed.exe

[ ]
RE:00299 V4.76β7No.00303
kiwikazuya さん 07/04/18 17:52
 
機能追加/仕様変更での、
プロポーショナルフォントの折り返し桁数計算のさらなる高速化。
すごいです。以前転送させていただいた中国語のメルマガですが、
UTF8で受信したものが、2秒程度で表示されるようになりました。
逆にGB2312コードでのものは、ちょっと遅くなったみたいです。。。

さらに、$(SmallRootHeader)およびSmallRootHeader関数で、X-Attach:ヘッダの中の
"受信添付\...\"みたいな文字列を除去して、さらにはファイル名を正しい文字コー
ドに変換して返すようにした。 これもきちんと
表示されています。
(例)以下の「採購需求報表」は表示の関係で日本語漢字にしています。
Subject:  Fw: 採購需求報表
X-Attach: 送信添付\070418_00\$u8_{E98787E8B4ADE99C80E6B182E68AA5E8A1A8}.xls


-----------------------転送元のメール-----------------------
From:     com.cn>
To:       com.cn>
Cc:       com. cn>
Subject:  採購需求報表
Date:     Tue, 17 Apr 2007 16:45:24 +0800
X-Attach: 採購需求報表.xls

もうひとつ、X-Attach:およびX-Memo:ヘッダ中の文字列を現在のメール用の文字コー
ドに変換してさらに整形もする用の、FormatAttachHeader関数を追加した。
この関数をマクロあるいは、テンプレートから使用して、
正しい外国語での送信添付ファイル名を本文に、以下のように
追加するには、どうしたらよいでしょうか?

添付ファイル:採購需求報表2.xls

転送メール用テンプレートとして、
添付ファイル:$(FormatAttachHeader)
としてみましたが、ファイル名は取り出せませんでした。

よろしくお願いいたします。


[ ]
RE:00303 V4.76β7No.00304
秀まるお さん 07/04/18 18:07
 
> 添付ファイル:採購需求報表2.xls

 マクロでやるとしたら、

    loaddll "tkinfo.dll";
    $attach = dllfuncstr("CurrentHeader", "X-Attach:");
    if( $attach != "" ) {
        $attach = "X-Attach: " + $attach;
        $attach = dllfuncstr("FormatAttachHeader", $attach );
        $attach = midstr( $attach, 10, 999 );
        insert "添付ファイル: " + $attach + "\n";
    }

 になります。

 テンプレートには、マクロでやってるmidstr関数相当の物が無いので無理みた
いです。

 X-Attach:ヘッダが複数ある場合なんかも考えるならば、マクロでやるしか無
いと思います。

[ ]
RE:00299 V4.76β7No.00305
Nanni さん 07/04/18 18:09
 
> V4.76β7をアップロードしました。またお願いします。

下の図のフォルダの部分(だけ)が透明になるという現象がしばらく前の版
から起きています。常駐秀丸メールから復帰したときにおきる確率が高い
ようです。透明になった部分をクリックすると正常にもどります。

XP + V4.76β7
┏━━━━━━━━━━━━━━━━━
┃秀丸メール
┃----------------------------------
┃ファイル(F) 編集(E) 送受信(T)
┣━━━━━━┳━━━━━━━━━━
┃□ ▼ □ ▼ □ ▼ □
┃------------┃--------------------
┃フォルダ    ┃メール一覧
┃----------------------------------
┃            ┃
┃            ┃
┃            ┃


[ ]
RE:00303 V4.76β7No.00306
kiwikazuya さん 07/04/18 18:09
 
以下のようなマクロを使って、受信メールで試しましたところ、
後半の文字列が文字化けしてしまいました。
loaddll "TKinfo.dll";
#n = dllfunc("FormatAttachHeader");
$Attach = dllfuncstr( "CurrentHeader", "X-Attach" );
message $Attach;
setclipboard $Attach;
endmacro;

取り出しもと、
送信添付\070418_00\$u8_{E98787E8B4ADE99C80E6B182E68AA5E8A1A8}.xls

結果、
採購需求・

正しくは、採購需求報表

ご検討いただけると幸いです。
よろしくお願いいたします。

[ ]
RE:00304 V4.76β7No.00307
kiwikazuya さん 07/04/18 18:18
 
マクロのご提供ありがとうございました。
早速、使ってみました。
単独でメールエディタからの使用では、後半が文字化けします。
テンプレートで起動するマクロとして使用すると、
文字化けはしませんが、なんとTo:ヘッダに記入されてしまいます。

どの辺りを気をつけて修正すれば、よろしいのでしょうか?
よろしくお願いいたします。

[ ]
RE:00307 V4.76β7No.00308
kiwikazuya さん 07/04/18 18:39
 
作成していただいたマクロを少しいじって、
直接メールに記入するのではなく、クリップボードに格納することに
しました。

これならば、単独使用でも、テンプレートからでも、
任意の場所に添付ファイル名を記入することができます。

 loaddll "tkinfo.dll";
    $attach = dllfuncstr("CurrentHeader", "X-Attach:");
    if( $attach != "" ) {
        $attach = "X-Attach: " + $attach;
        $attach = dllfuncstr("FormatAttachHeader", $attach );
        $attach = midstr( $attach, 10, 999 );
//        insert "添付ファイル: " + $attach + "\n";
    }
message $attach;
setclipboard "添付ファイル: " + $attach + "\n";

とっても便利になりました。
外国語がファイル名の添付ファイルの処理について、中国に来てから
ずっとこうなればいいなということが、これで実現できました。
とても便利です。

ほんとうに秀丸メールは最強ですね。

[ ]
RE:00308 V4.76β7No.00309
kiwikazuya さん 07/04/18 18:47
 
何度もすみません。

添付ファイル名がユニコードの場合は、OKなのですが、
中国語簡体字GB2312コードでのものはNGでした。
マクロ使用、
X-Attach: 憲怣揧晅\070418_03\$gb_870{B2BFB7D6B2FAC6B7BDE9C
9DC}.doc

添付ファイル: 870イソキヨイニキス鯔ワ.doc

単に、返信、転送での返信元、転送元のX-Attachについては、
正しい添付ファイル名となっています。

----- Original Message -----
Subject:  Fw:
Date:     Tue, 17 Apr 2007 11:52:40 +0800
X-Attach: 870部分産品介紹.doc

?です。
よろしくお願いいたします。

[ ]
RE:00309 V4.76β7No.00310
kiwikazuya さん 07/04/18 21:22
 
何度も何度もすみません。
先のマクロで複数添付ファイルがある場合は、
どうすればよいのでしょうか?

自分で作成したものは、何かすごく力業で、
ifでどんどん付け足して、行くのですが、
数が増えれば増えるだけif分とその中身が増えていき、
添付数が3つですでに58行です。

それと、やはり中国語コードで保存されているファイル名は、
文字化けしてしまいます。
よろしくお願いします。

[ ]
RE:00305 V4.76β7No.00311
秀まるお さん 07/04/19 08:49
 
 たしか最近のβ版で背景部分の描画をいじりました。それでウィンドウサイズ
をドラッグして変更する時とかに、灰色のチカチカした描画がされないようにし
ました。それのせいだと思います。

 一応、こちらで何回か再現テストしてもうまく再現しないようなので、もうち
ょっとヒントを教えて欲しいです。具体的にその「透明になる」というのがどの
パーツなのか教えて欲しいです。

 1.フォルダ枠内の、本来白く描画される背景部分
 2.「フォルダ」と書いてあるタイトルバー部分
 3.タイトルバーと実際のフォルダ枠の間の灰色部分
 4.フォルダ枠内のスクロールバー
 5.フォルダ枠の3次元風枠線部分

 のどれどれが透明になってるのか教えて欲しいです。

[ ]
RE:00310 V4.76β7No.00312
秀まるお さん 07/04/19 09:29
 
 簡体字中国語のメールでsetclipboardがうまくいかない原因ですが、調べてみ
たら、そもそもsetclipboardは日本語の文字列を前提として動作する作りになっ
てるがために、FormatAttachHeaderで返る中国語文字列をうまく処理できてませ
んでした。

 さらに言うなら、たとえばinsert "あいうえお";みたいな文を中国語メールで
実行しても、中国語文字コードとして"あいうえお"が挿入されず、化けた文字列
が挿入されたりします。

 今現在の秀丸エディタではこのような問題がエレガントに解決出来てないです。
なので、とりあえずマクロをうまく動作させるには、文字コードをいったん日本
語に変更して、そこでマクロ実行してからまた元の文字コードに戻すって作戦に
するしかありません。

 トータルで、以下のようなマクロとなりました。

    loaddll "tkinfo.dll";
    #charset = charset & 0x1F;
    #count = dllfunc("CountCurrentHeader", "X-Attach:");
    if( #count == 0 ) {
        endmacro;
    }
    #i = 0;
    $result = "";
    if( #charset != 1 ) {
        #n = dllfunc("SetCharSet", "iso-2022-jp", 1);
    }
    while( #i < #count ) {
        $attach = dllfuncstr("CurrentHeader2", "X-Attach:", #i);
        #i = #i + 1;
        $attach = "X-Attach: " + $attach;
        $attach = dllfuncstr("FormatAttachHeader", $attach );
        $attach = midstr( $attach, 10, 999 );
        $result = $result + "添付ファイル: " + $attach + "\n";
    }
    setclipboard $result;
    if( #charset != 1 ) {
        if( #charset == 8 ) {
            #n = dllfunc("SetCharSet", "euro", 1);
        } else if( #charset == 9 ) {
            #n = dllfunc("SetCharSet", "gb2312", 1);
        } else if( #charset == 10 ) {
            #n = dllfunc("SetCharSet", "big5", 1);
        } else if( #charset == 11 ) {
            #n = dllfunc("SetCharSet", "korea", 1);
        } else if( #charset == 16 ) {
            #n = dllfunc("SetCharSet", "russian", 1);
        } else if( #charset == 13 ) {
            #n = dllfunc("SetCharSet", "centraleuro", 1);
        } else if( #charset == 21 ) {
            #n = dllfunc("SetCharSet", "thai", 1);
        } else {
            message "未知の文字コードなので元に戻せません。";
        }
    }

[ ]
RE:00311 V4.76β7No.00313
Nanni さん 07/04/19 09:35
 
> 一応、こちらで何回か再現テストしてもうまく再現しないようなので、もうち
>ょっとヒントを教えて欲しいです。具体的にその「透明になる」というのがどの
>パーツなのか教えて欲しいです。
>
> 1.フォルダ枠内の、本来白く描画される背景部分
> 2.「フォルダ」と書いてあるタイトルバー部分
> 3.タイトルバーと実際のフォルダ枠の間の灰色部分
> 4.フォルダ枠内のスクロールバー
> 5.フォルダ枠の3次元風枠線部分
>
> のどれどれが透明になってるのか教えて欲しいです。

ご検討、ありがとうございます。

2. の部分です。この部分の色が抜けて下のデスクトップなり他のアプリが見えてし
まうということです。
私も再現のルールが見つけられなくて報告するかどうか迷ったのですが、他にも現れ
ている方がいるかもしれないと思って書いて見ました。
今度出たら画像等をとっておこうと思います。

[ ]
RE:00313 V4.76β7No.00314
秀まるお さん 07/04/19 09:44
 
 情報ありがとうございます。

 そこはたしかに最近のバージョンで描画の最適化をした所ですが、別に最適化
しなくても大したちらつきは出ないので、元の処理に戻します。

[ ]
RE:00312 V4.76β7No.00315
kiwikazuya さん 07/04/19 10:30
 
マクロありがとうございました。
早速、ためしたところ、「マクロエラー、型が合いません」と
エラーでできませんでした。

実行したメールは、ユニコードのメールです。
なにかいけなかったでしょうか?

[ ]
RE:00315 V4.76β7No.00316
秀まるお さん 07/04/19 11:09
 
 僕の書いたマクロをそっくりそのままコピー&ペーストして実行すればエラー
にならないと思いますが…。

 たしかにこちらでチェックしてエラーは出てないです。ユニコードのメールで
実行しても同じですけど。???

[ ]
RE:00316 V4.76β7No.00317
kiwikazuya さん 07/04/19 11:25
 
再度、コピペしたところ、OK牧場!でした。
ありがとうございました。

[ ]
RE:00314 V4.76β7No.00318
Nanni さん 07/04/19 14:22
 
> そこはたしかに最近のバージョンで描画の最適化をした所ですが、別に最適化
>しなくても大したちらつきは出ないので、元の処理に戻します。

対応ありがとうございます。
その後再現しましたので画像を保存しよく見ると2.だけでなく、3.も消えて
いることがわかりましたので訂正します。

> 1.フォルダ枠内の、本来白く描画される背景部分
> 2.「フォルダ」と書いてあるタイトルバー部分
> 3.タイトルバーと実際のフォルダ枠の間の灰色部分
> 4.フォルダ枠内のスクロールバー
> 5.フォルダ枠の3次元風枠線部分

[ ]
RE:00318 V4.76β7No.00319
秀まるお さん 07/04/19 17:25
 
 ちょっと原因が分からないのでなんですが、とにかくその辺もちゃんと消すよ
うにしてみます。

 それでもダメでしたらまた連絡欲しいです。

[ ]