openfileをする方法No.28460
コイ さん 06/09/03 01:35
 
こんにちは。

>PRINT:
>loaddll "tkinfo.dll";
>if( ! dllfunc( "IsHidemaruMail" ) )

>openfile "C:\\メール内容.txt";

メールマクロから、メール内容を読み加工して変数に入れたデータを最後に秀丸エデ
ィタを開いて、insertで記述してやろうという中の一文なのですが、エラー表示が出
たり出なかったりします。ファイルは開きません。

ヘルプの例文にしたがってあれこれ書いてやってみたのですが、うまくいきません。
正しい書き方を教えていただけないでしょうか。よろしくお願いします。エディタは
浮動小数点バージョンを使用しています。


[ ]
RE:28460 openfileをする方法No.28461
アルビレオ さん 06/09/03 02:04
 
ユーザーのアルビレオです。

>>PRINT:
>>loaddll "tkinfo.dll";
>>if( ! dllfunc( "IsHidemaruMail" ) )
>
>>openfile "C:\\メール内容.txt";
>
>メールマクロから、メール内容を読み加工して変数に入れたデータを最後に秀丸エデ
>ィタを開いて、insertで記述してやろうという中の一文なのですが、エラー表示が出
>たり出なかったりします。ファイルは開きません。
>
>ヘルプの例文にしたがってあれこれ書いてやってみたのですが、うまくいきません。
>正しい書き方を教えていただけないでしょうか。よろしくお願いします。エディタは
>浮動小数点バージョンを使用しています。

秀丸メールのマクロではopenfileは使えません。
(マクロヘルプの「秀丸エディタと秀丸メールのマクロ動作の違い」を参照)

それに1メール=1ファイルとは限らないので、メールを加工するなら秀丸エデ
ィタを使うより、秀丸メール側でOpenMailを(必要ならEnableEditも)使った方が
いいです。

[ ]
RE:28461 openfileをする方法No.28462
コイ さん 06/09/03 02:12
 
こんにちは。お返事ありがとうございます。
>秀丸メールのマクロではopenfileは使えません。
>(マクロヘルプの「秀丸エディタと秀丸メールのマクロ動作の違い」を参照)
>
>それに1メール=1ファイルとは限らないので、メールを加工するなら秀丸エデ
>ィタを使うより、秀丸メール側でOpenMailを(必要ならEnableEditも)使った方が
>いいです。

結局使えないんですか。
ヘルプ「IsHidemaruMail関数(TKInfo.dll)」より
> 秀丸メールからテキストファイルを処理したい場合、
>秀丸エディタと連携して処理する必要があります。
>そういうときで、マクロを2つに分けたくない場合には、
>このIsHidemaruMail関数を使って秀丸エディタの時と秀丸
>メールの時とで処理を分けることができます。

その文章の限りでは使えるような気がしたものですから。アルビレオさんのやり方で
試してみます。ありがとうございました。


[ ]
RE:28462 openfileをする方法No.28463
アルビレオ さん 06/09/03 02:50
 
アルビレオです。

>結局使えないんですか。
>ヘルプ「IsHidemaruMail関数(TKInfo.dll)」より
>> 秀丸メールからテキストファイルを処理したい場合、
>>秀丸エディタと連携して処理する必要があります。
>>そういうときで、マクロを2つに分けたくない場合には、
>>このIsHidemaruMail関数を使って秀丸エディタの時と秀丸
>>メールの時とで処理を分けることができます。
>
>その文章の限りでは使えるような気がしたものですから。アルビレオさんのやり方で
>試してみます。ありがとうございました。

IsHidemaruMailは「マクロを実行しているのが秀丸メールか、それとも秀丸エデ
ィタか」という情報を返すだけです。
それを利用して「秀丸メールだったらOpenMailを秀丸エディタだったらopenfile
を実行する」という風に処理を分岐させることでどちらでも実行できるマクロを
書くことができるという意味で、使えないはずの機能が使えるようになるなんて
ことはありません。

[ ]
RE:28462 openfileをする方法No.28464
アルビレオ さん 06/09/03 03:02
 
アルビレオです。

補足ですが、1ファイルに複数メールが格納されている形式だと目的のメールが
「そのファイルの中のどこにあるのか」を特定するのが非常にめんどうです。
だからもしも秀丸メールでopenfileを実行できたとしても、メール内容の編集を
するならOpenMailを使う方がはるかに簡単なんです。

普通のテキストファイルを秀丸メールで編集したい場合は、マクロヘルプの
「ヒント集」-「テキストファイルを編集する」を参考にしてください。

[ ]
RE:28464 openfileをする方法No.28465
コイ さん 06/09/03 11:49
 
こんにちは。アルビレオさん、いろいろありがとうございました。ご意見参考にして
これからやってみます。10時ごろ起きて、メシを食い、一服してパソコンの前に座
ったところです。ありがとうございました。

[ ]
RE:28465 openfileをする方法No.28470
秀まるお2 さん 06/09/04 09:53
 
 秀丸メール上でテキストファイルを加工するには、

 1.新規メール用のエディタを起動する。
 2.ヘッダ表示を「表示しない」にする。
 3.中身を空っぽにする。
 4.insertfileでファイルを読み込む。
 5.適当に加工する。
 6.saveasで保存する。

 って作戦がいいんじゃないかと思います。

 マクロ的には、

    loaddll "tkinfo.dll";
    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", 0);
    gofiletop;
    beginsel;
    gofileend;
    delete;
    $file = "C:\\テスト.txt";;
    if( existfile( $file ) ) {
        insertfile $file;
    }
    ...
    ... 加工
    ...
    saveas $file;
    quit;

 みたいな感じです。

[ ]