添付されているファイル数の数え方No.33540
soudan さん 08/03/11 12:12
 
メールにより情報提供を受けているアカウントがあります。

メールそのもので来る場合と、複数添付可能なメールで来る場合があり、
情報提供数をカウントするために、添付されているメール数も集計した
いと考えています。

集計対象の全メールを添付ファイルを含めてエクスポートして、そのテ
キストファイルから、メール区切りやboundary=を見ながら集計すること
は出来ると思うのですが、エクスポートしたファイルが非常に大きく
なってしまいます。

受信メールの全ヘッダ情報で出てくる、X-Attach: 受信添付\0803xx の
ような秀丸メールで付加しているヘッダ情報をそのまま、但し、添付フ
ァイルは出力しないようなエクスポートは出来ないものでしょうか?

もしくは、別のアプローチでもっと簡便な方法がありましたらご教示い
ただけないでしょうか?

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33540 添付されているファイル数の数えNo.33541
秀まるお2 さん 08/03/11 13:20
 
 X-Attach:ヘッダの数を数えるだけなら、別にわざわざメールをエクスポー
トしなくても、秀丸メールのメールデータ用フォルダを対象に秀丸エディタの
grepを使う等してX-Attach:を数えてやればいいんじゃないかと思います。

 あるいは、秀丸メールの中でマクロを使ってカウントすることも出来ますけ
ど。何かそういうサンプルマクロが必要なら作って差し上げることも出来ます。

[ ]
RE:33540 添付されているファイル数の数えNo.33542
Iranoan さん 08/03/11 13:31
 
 soudan さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> メールにより情報提供を受けているアカウントがあります。
>
> メールそのもので来る場合と、複数添付可能なメールで来る場合があり、
> 情報提供数をカウントするために、添付されているメール数も集計した
> いと考えています。
 単純に数を数えたいだけなら、CountCurrentHeader() 関数を使えばよいと
思います。メールそのもので来ているなら、返り値は 0 でしょうし。

> 但し、添付
> ファイルは出力しないようなエクスポートは出来ないものでしょうか?
 もしテキスト・ファイルにしてから処理をしたいのであれば、appendsave
文を使えばよい気がします。

[ ]
RE:33541 hidesoft.8:33541添付されているNo.33549
soudan さん 08/03/11 17:53
 

> X-Attach:ヘッダの数を数えるだけなら、別にわざわざメールをエクスポー
>トしなくても、秀丸メールのメールデータ用フォルダを対象に秀丸エディタの
>grepを使う等してX-Attach:を数えてやればいいんじゃないかと思います。

データフォルダの USER フォルダの当該フォルダですね。
ここのデータは、お勧めに従い「月単位の分割」としているので、例えば、
週単位とか旬で集計しようとするとヘッダの日付も見る必要が出てくるの
で、その分面倒かなぁと、、

あと、添付されてくるメール数と添付されていないメール数も集計したい
ので、
 X-Attach:の数+メール中にX-Attach:が無いものの数
を集計する必要もあります。


> あるいは、秀丸メールの中でマクロを使ってカウントすることも出来ますけ
>ど。何かそういうサンプルマクロが必要なら作って差し上げることも出来ます。

テンプレートマクロ以外使ったことがないないのですが、今回を機会に
少し勉強してみます。
具体的に不明な箇所が出ましたら、質問させていただくかもしれません。

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33549 hidesoft.8:33541添付されているNo.33550
秀まるお2 さん 08/03/11 18:05
 
 特定のフォルダの中にあるメールを対象にして、

 添付ファイルが無いメールは1つと数える。
 添付ファイルがあるメールは、その添付ファイル数を数える。

 ってするマクロなら以下のようになります。

    loaddll "tkinfo.dll";
    #mailcount = dllfunc("MailCount");
    #count = 0;
    #i = 0;
    while( #i < #mailcount ) {
        #n = dllfunc("SetMailIndex", #i);
        #attachcount = dllfunc("CountCurrentHeader","X-Attach");
        if( #attachcount == 0 ) {
            #count = #count + 1;
        } else {
            #count = #count + #attachcount;
        }
        #i = #i + 1;
    }
    message str(#count);

 よかったら参考にしてください。

[ ]
RE:33542 hidesoft.8:33542 添付されていNo.33551
soudan さん 08/03/11 18:21
 
Iranoanさん、ご回答ありがとうございます。。


>> メールそのもので来る場合と、複数添付可能なメールで来る場合があり、
>> 情報提供数をカウントするために、添付されているメール数も集計した
>> いと考えています。
> 単純に数を数えたいだけなら、CountCurrentHeader() 関数を使えばよいと
>思います。メールそのもので来ているなら、返り値は 0 でしょうし。

CountCurrentHeader() 関数のヘルプを見てきました。

範囲選択された複数メールに対して以下のようなマクロを実行というイメージ
なのでしょうか。
試行錯誤してみます。

・LockSelection
・メールがある限り以下をループ
 ・EnumSelection
 ・CountCurrentHeader()
  ・"1"以上の場合添付ファイル数として集計
  ・"0"の場合添付ファイルが無いメールとして集計
・UnlockSelection


>> 但し、添付
>> ファイルは出力しないようなエクスポートは出来ないものでしょうか?
> もしテキスト・ファイルにしてから処理をしたいのであれば、appendsave
>文を使えばよい気がします。

appendsave につきまして、秀丸メールヘルプ及びマクロヘルプで見つける
ことが出来ませんでした。
機能説明されている箇所につきましてご教示いただけないでしょうか?

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33550 hidesoft.8:33541添付されているNo.33552
soudan さん 08/03/11 18:30
 
具体的なマクロのご教示有難うございます。

特定フォルダへの移動/復帰orコピー手順を省略できるよう、
いただいたマクロについて、
 LockSelection/EnumSelection/SelectedMailCount
あたりを使用するようにしてみます。


> 特定のフォルダの中にあるメールを対象にして、
>
> 添付ファイルが無いメールは1つと数える。
> 添付ファイルがあるメールは、その添付ファイル数を数える。
>
> ってするマクロなら以下のようになります。
>
>    loaddll "tkinfo.dll";
>    #mailcount = dllfunc("MailCount");
>    #count = 0;
>    #i = 0;
>    while( #i < #mailcount ) {
>        #n = dllfunc("SetMailIndex", #i);
>        #attachcount = dllfunc("CountCurrentHeader","X-Attach");
>        if( #attachcount == 0 ) {
>            #count = #count + 1;
>        } else {
>            #count = #count + #attachcount;
>        }
>        #i = #i + 1;
>    }
>    message str(#count);
>
> よかったら参考にしてください。
--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33551 hidesoft.8:33542 添付されていNo.33553
Iranoan さん 08/03/11 19:00
 
 soudan さん今日は、Iranoan です。
> 範囲選択された複数メールに対して以下のようなマクロを実行というイメージ
> なのでしょうか。
 う〜ん、実際にどの様なマクロが良いかは、条件により異なると思います。

 想像するに、そのようなメールは送信元のアドレスが同じ等、何か特徴があ
るでしょうから、私なら SetFindPack(), FindDown() 関数あたりを使って条
件に合うメールを探し出し、そのメールに対して CountCurrentHeader() で数
を数えると思います。作り方を工夫すれば、送信元や期間などをマクロを実行
した時に指定するようにもできます。

> appendsave につきまして、秀丸メールヘルプ及びマクロヘルプで見つける
> ことが出来ませんでした。
 こちらは秀丸エディタのマクロ・ヘルプを御覧頂く必要があります。秀丸
メールのユーザは、秀丸エディタのマクロ・ヘルプを、秀丸エディタのインス
トーラから取り出して参照してよかったと思う (ちょっと手元で投稿が見つけ
られない) ので、入手しておくと便利だと思います。

[ ]
RE:33552 hidesoft.8:33541添付されているNo.33557
秀まるお2 さん 08/03/12 09:17
 
>  LockSelection/EnumSelection/SelectedMailCount
> あたりを使用するようにしてみます。

 ちなみにこんな風にしたらいいかと思います。

    loaddll "tkinfo.dll";
    #n = dllfunc("LockSelection");
    #count = 0;
    while( dllfunc("EnumSelection", 1) ) {
        #attachcount = dllfunc("CountCurrentHeader","X-Attach");
        if( #attachcount == 0 ) {
            #count = #count + 1;
        } else {
            #count = #count + #attachcount;
        }
        #i = #i + 1;
    }
    #n = dllfunc("UnlockSelection", 1);
    message str(#count);

[ ]
RE:33557 hidesoft.8:33541添付されているNo.33560
soudan さん 08/03/12 14:16
 
hidesoft.8:33550を参考に造ってみましたが、今回提示いただいた
もののほうがエレガントでしたので、こっちに変えさせていただき
ました。

どうせならということで、添付なしメール数、添付有りメール数、
添付されたメール数、選択したメールの総容量を出力させてます。
どうも有難うございました。

ただ、messageで画面表示させた結果が Copy & Paste できない
ようでしたので、新規メールの本文内容としても出力させる、に
より、とりあえずコピーできるようにしています。

秀丸エディタのヘルプファイルが、秀丸メールのみユーザの状態で
閲覧できるようであれば、もう少しマシな方法を模索します。

なお、この仕組みと moveを使えば、サイズを条件とした振り分け
設定も簡単にできますね。

今後、ボチボチとマクロの機能を勉強することとします。

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33553 hidesoft.8:33542 添付されていNo.33562
soudan さん 08/03/12 14:42
 
Iranoan さん、どうも。 soudanです。

秀丸エディタのヘルプはまだ見ておりませんが、appendsaveはファイル
周りの処理と推測されます。
SetFindPack()等についても拝見しまして、かなり複雑な処理をさせる
ことが出来ることは伺えました。

今回は、単純に集計さえ出来ればいいので、秀まるおさんご提示の方法
によらせていただきました。

もともと秀丸メールからメールデータをテキストファイルでエクスポー
トして、文字処理ツール(レガシーなBasic)でcsv化して、エクセル上
で作業することは行っていましたが、今回、秀丸メール上と外部処理ツ
ールの境界が、マクロ利用によりいろいろ可変できそうな感触を得るこ
とができましたので、うまく使い分けできるようにマクロについても勉
強していくこととします。

いろいろと有難うございました。

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33560 hidesoft.8:33541添付されているNo.33563
秀まるお2 さん 08/03/12 14:49
 
 クリップボードに入れるなら、

   message str(#count);

 の所を

   setclipboard str(#count);

 に直したりしたらいいかもしれません。

 秀丸エディタのヘルプファイルは秀丸メール単品利用のユーザー様でも使っ
ていただいてかまわないです。例えばヘルプファイルだけ取り出してどこかに
コピーしてダブルクリック起動して使う等したらいいかと思います。

[ ]
RE:33560 hidesoft.8:33541添付されているNo.33564
Iranoan さん 08/03/12 15:06
 
 soudan さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> messageで画面表示させた結果が Copy & Paste できない
> よう
 message 文の代わりに setclipboard 文を使えばよい気がします。
> 秀丸エディタのヘルプファイルが、秀丸メールのみユーザの状態で
> 閲覧できるようであれば、もう少しマシな方法を模索します。
 私は秀丸エディタも使っているので、確実なことは解りませんが、秀丸エ
ディタのマクロファイルを秀丸メールをインストールしたフォルダにコピーし、
エディタ・ウィンドウで「秀丸エディタのキー割り当て」を使えば、秀丸メー
ルから秀丸エディタのヘルプを呼び出せると思います。

[ ]
RE:33563 hidesoft.8:33541添付されているNo.33565
soudan さん 08/03/12 15:08
 
メッセージ表示はそのままで、新規メール作成を中止しました。

また、秀丸エディタのヘルプファイルを参考に、今後は積極的に
マクロを活用してみます。

いろいろと有難うございました。

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]
RE:33564 hidesoft.8:33541添付されているNo.33567
soudan さん 08/03/12 16:06
 
Iranoan さん、どうも。 soudanです。


> 私は秀丸エディタも使っているので、確実なことは解りませんが、秀丸エ
>ディタのマクロファイルを秀丸メールをインストールしたフォルダにコピーし、
>エディタ・ウィンドウで「秀丸エディタのキー割り当て」を使えば、秀丸メー
>ルから秀丸エディタのヘルプを呼び出せると思います。

その他、設定−秀丸エディタの動作環境のヘルプからでも、秀丸エディ
タのヘルプを呼び出せました。
ただし、秀丸エディタのヘルプから、マクロヘルプは呼び出せないよう
なので、直接起動することとします。

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

[ ]