秀丸エディタから秀丸メールを呼び出すNo.34695
いけ さん 08/09/15 00:34
 
いつもお世話になります。

秀丸メールの会議室で良かったかどうか不安ですが。。

マクロで秀丸メールと秀丸エディタの連携を考えています。
(マクロは勉強し始めたばかりでほとんど詳しくはありません)

◆フロー
1)秀丸メールでメールを受信する
2)メールに、あるキーワードが含まれていれば、受信後の自動マクロ
で秀丸エディタにそのキーワードを渡す(厳密に言うとキーワードを
渡しているわけではありませんが)
3)次に秀丸エディタが別のアプリを起動し、アプリが出力したテキス
トの結果に対してさきほどのキーワードをGREP検索し、その結果をテ
キストに保存する

マクロでここまではできましたが、問題はここからです。

◆問題
1)GREPの対象となっているテキストが閉じれません
2)同じくGREPの結果を保存したテキストが閉じれません
3)仕方なくexitallで閉じると、一応は閉じれました

exitallしてしまうと、次のマクロが実行できなくなり困ります。

この先の希望としては、使用したファイルを閉じたうえで、出来上が
ったGREP結果のテキストを秀丸メールで添付ファイルとして送信した
いのです。(もちろんマクロでワンタッチに)

ゆえに、

◆問題
4)最終的に秀丸エディタから秀丸メールを操作する方法が具体的に分
かりません

なお秀丸メール単体で、GREP結果のテキストを添付ファイルとしてワ
ンタッチ送信するマクロは何とかできました。それはできるのですが、
秀丸エディタから秀丸メールをマクロで操作することができない状態
です。

説明下手で分かり辛いかもしれませんが、要するに、

・使ったテキストファイルを閉じる手順(マクロは続行しつつ)
・秀丸エディタから秀丸メールを呼び出す手順

の2つで悩んでいます。(簡単なことかもしれませんが)

ご教示よろしくお願い申し上げます。


[ ]
RE:34695 秀丸エディタから秀丸メールを呼No.34696
秀まるお2 さん 08/09/15 09:56
 
 秀丸エディタから秀丸メールにマクロ実行を戻す方法は2つ考えられると思い
ます。

■runsync2を使う方法

 秀丸メールから秀丸エディタを起動するのにrunsync2を使ってやれば、秀丸エ
ディタが終了した後に秀丸メールにマクロが戻ってきます。

 例:秀丸メール用マクロがtest1.mac、秀丸エディタ用マクロがtest2.mac。

test1.mac

    message "test1.mac";
    runsync2 "c:\\program files\\hidemaru\\hidemaru.exe /x test2.mac";
    message "test1.mac終わり";

test2.mac

    message "test2.mac";
    exit;

■秀丸側からturukame.exeコマンドラインを起動する方法

 秀丸マクロからrun文で"turukame.exe /xマクロ名"ってことでマクロ起動すれ
ばいいです。

 例:test1.mac、test3.macが秀丸メール用、test2.macが秀丸エディタ用

test1.mac

    message "test1.mac";
    run "c:\\program files\\hidemaru\\hidemaru.exe /x test2.mac";

test2.mac

    message "test2.mac";
    run "c:\\program files\\hidemarumail\\turukame.exe /x test3.mac";

test3.mac

    message "test3.mac";

 ってな具合でどうでしょ?

[ ]
RE:34696 秀丸エディタから秀丸メールを呼No.34697
いけ さん 08/09/15 12:36
 
いつもお世話になります。

後者、「■秀丸側からturukame.exeコマンドラインを起動する方法」

で試してみました。

驚くほどうまく動きました。

聞いてみれば、なんて単純なことで悩んでいたんだという気がします。
(恥ずかしい)

あとは微調整をがんばってみます。

ますますマクロに魅力を感じるようになりました。

ありがとうございました。

[ ]
RE:34695 秀丸エディタから秀丸メールを呼No.34698
Iranoan さん 08/09/15 12:58
 
 いけさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> マクロで秀丸メールと秀丸エディタの連携を考えています。
 既に秀まるおさんからの回答が付いていますが、いっそのこと全部秀丸メー
ルで処理してはどうでしょう? 秀丸メールではファイルを開くことは出来ませ
んが、
・他のテキスト・ファイルへの追加も含めた保存
・grep
・別のアプリケーションの起動
が出来るので、パッとやりたい処理を見た限り可能な気がします。

[ ]
RE:34698 秀丸エディタから秀丸メールを呼No.34699
いけ さん 08/09/15 13:49
 
いつもお世話になります。

Iranoanさん、ありがとうございます。

秀丸メールのマクロのヘルプをざっと見て、「秀丸メールはファイ
ルを開けない」趣旨の記載があったと思いますが、その時点で勝手
に、秀丸エディタを使わないと無理かなと決め付けてしまいました。

しかしながら、できそうとのこと。

もし可能ならば、もちろんその方が便利だと思います。

「開けない」であって、「処理はできる」ってことでしょうか。

再度ヘルプを見直して、一本化に挑戦してみたいと思います。
(自分の力量と相談が必要ですが)

また分からないことがあれば、改めて質問させてください。

[ ]
RE:34699 秀丸エディタから秀丸メールを呼No.34706
Iranoan さん 08/09/16 02:17
 
 いけさん今日は、Iranoan です。
> 再度ヘルプを見直して、一本化に挑戦してみたいと思います。
> (自分の力量と相談が必要ですが)
 秀丸エディタのマクロの経験をお持ちなら、一度「秀丸メールと秀丸エディ
タとのマクロ動作の違い」を御覧になると良いと思います。
 また、例えば openfile 文は使えませんが、ヘッダ本文とも空の状態でから、
insertfile $s;
    :
    :
saveas $s;
等というように、代用できる文をいくつかあります。

 御参考までに。

[ ]
RE:34706 秀丸エディタから秀丸メールを呼No.34722
いけ さん 08/09/20 01:39
 
お世話になります。

秀丸メール一本化で作業に挑戦中ですが困っています。

とりあえず、秀丸メールから秀丸エディタに処理を渡して開いていた
テキストファイルを、秀丸メールだけで読み込むことはできました。

作業としては、

1)新規メールエディタ作成
2)パス指定して、メールエディタ画面にテキストファイル読み込み

です。

ここまではいいです(できたことはできたのですが、果たしてこれで
合っているのかどうかは自信ないですが)。

いざ、ここからgrepしようとすると、できません。

というのも、秀丸エディタ上のマクロでは

 grep "検索文字列","ファイルパス",".",regular;

などとすることでよかったものを、秀丸メール上のマクロではどのよ
うに記述すればいいのか参考になる資料がヘルプなどから見つけられ
ませんでした。

適当に記述しても、

「秀丸メールのエディタ上では、このgrep操作はできません。」

とか、

「コンマがありません」

とポップアップが出るばかり。。。

秀丸メール上のマクロでのgrep書式はどうなっているのでしょうか?

それ以前に、私が実現しようとしている処理に対して、今回行った手
順が方向性だけでも正しいと言えるのでしょうか?

実現したいこと(おさらい)
(1)秀丸メールで受信後に、本文(等)から文字列検索
(2)検索ヒットしたら別アプリ実行
(3)別アプリで処理した結果のテキストをgrep
(4)grepした結果をメール送信(多少の補足を付け足して)

恐れ入りますが、ご教示よろしくお願いします。

[ ]
RE:34722 秀丸メールで grepNo.34723
Iranoan さん 08/09/20 03:49
 
 いけさん今日は、Iranoan です。
> ここまではいいです(できたことはできたのですが、果たしてこれで
> 合っているのかどうかは自信ないですが)。
<snip>
> 秀丸メール上のマクロではどのよ
> うに記述すればいいのか参考になる資料がヘルプなどから見つけられ
> ませんでした。
 ひょっとして、いつの間にか秀丸メールでは出来なくなっているのか? と思い
//------------------------------------------------------------
loaddll "tkinfo.dll";
grep "秀丸エディタ",            //検索文字列
  "*.txt",                      //検索ファイル
  dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\" +
  dllfuncstr( "CurrentFolder" ),//検索フォルダ
  subdir,icon;                  //オプション
//------------------------------------------------------------
を試してみましたが、動作しました。

> 「秀丸メールのエディタ上では、このgrep操作はできません。」
 こちらは解りませんが、少なくとも
> 「コンマがありません」
が出るということは、
・パラメータの数が足りない
・「"」の対応があっていない
等の文法エラーだと思います。

> 秀丸メール上のマクロでのgrep書式はどうなっているのでしょうか?
 基本は同じです。ただ
>  grep "検索文字列","ファイルパス",".",regular;
の様に第 3 パラメータで「"."」とすると、これはカレント・フォルダを意味し、
・秀丸エディタでは現在開いているファイルの存在するフォルダ
・秀丸メールでは、「ホームディレクトリ」
という違いがあります。

[ ]
RE:34723 秀丸メールで grepNo.34724
いけ さん 08/09/20 16:18
 
お世話になります。

根本的に私が間違っていたようですね。
テキストファイルを処理しようと、強引に秀丸メールの新規
メールエディタ画面にテキストファイルを表示させたのです
が、それは不要だったと。。。

その話は置いておき、見たところ、

//------------------------------------------------------------
loaddll "tkinfo.dll";
grep "秀丸エディタ",            //検索文字列
  "*.txt",                      //検索ファイル
  dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\" +
  dllfuncstr( "CurrentFolder" ),//検索フォルダ
  subdir,icon;                  //オプション
//------------------------------------------------------------

はそのまんまマクロとして使えそうですよね?

コピペしてtest.macにし、それを秀丸メールから実行すると、

「test.mac(7): 式がおかしいです」

となります。7行目「subdir,icon;」のことですよね。

仮にその7行目を削除して6行目で完結(;)させると、

「秀丸メールのエディタ上では、このgrep操作はできません。」

となります。(書式あってますか?)

試しに「dllfuncstr( "HomeDir" ) 」以降の部分をmessageさせると、
正常にパスを表示していることから認識はできています。

「このgrep操作はできません」となってしまうのはなぜでしょう?

私のやり方が間違っているのでしょうか?

[ ]
RE:34724 秀丸メールで grepNo.34725
Iranoan さん 08/09/20 16:36
 
 いけさん今日は、Iranoan です。
> 「test.mac(7): 式がおかしいです」
>
> となります。7行目「subdir,icon;」のことですよね。
>
> 仮にその7行目を削除して6行目で完結(;)させると、
 書き込むときに、要らぬ整形をしたのがいけませんでしたm(__)m。
//------------------------------------------------------------
loaddll "tkinfo.dll";
grep "秀丸エディタ"              //検索文字列
  , "*.txt"                      //検索ファイル
  ,dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\" +
    dllfuncstr( "CurrentFolder" )//検索フォルダ
  ,subdir,icon;                  //オプション
//------------------------------------------------------------
としてください。とにかく grep 文の途中のコメントを削除し、1 行にすれば
良いはずです。

[ ]
RE:34725 私の環境設定が悪いのでしょうかNo.34726
いけ さん 08/09/20 17:08
 
お世話になります。

たびたびすみません。

試しに、下記内容を修正してコメント削除し、

>//------------------------------------------------------------
>loaddll "tkinfo.dll";
>grep "秀丸エディタ"              //検索文字列
>  , "*.txt"                      //検索ファイル
>  ,dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\" +
>    dllfuncstr( "CurrentFolder" )//検索フォルダ
>  ,subdir,icon;                  //オプション
>//------------------------------------------------------------

1行にした上でマクロ実行(秀丸起動直後の普通の画面から)
したところ、やはり結果は同じです。

「秀丸メールのエディタ上では、このgrep操作はできません。」

ですね。

マクロ自体は使えますが、grepができないということ?

私の秀丸メールの環境設定か何かがおかしいということは
ないでしょうか?(秀丸エディタでは使えるようですが)

[ ]
RE:34726 grepは秀丸メールのVerアップでNo.34727
いけ さん 08/09/20 18:50
 
お世話になります。

自己レスです。

>私の秀丸メールの環境設定か何かがおかしいということは
>ないでしょうか?(秀丸エディタでは使えるようですが)

もしかしてと思い、秀丸メールのバージョンを上げた(5.00→5.09)
ところ、正常に動作するようになりました。

とりあえずgrepについては解決のようです。

あとの処理をどう作りこむかはこれから検討です。

大変お騒がせしました。申し訳ありません。

なお、キーワード検索で使うFindDownが、ヒットしてもしなくても
ゼロが返ってくるように思います(V5.00にて)。

V5.09にしても変化なしです。

これも私の環境が関係しているのかも?(もう少し調べてみます)

取り急ぎ、grep解決のご報告まで。

[ ]
RE:34727 grepは秀丸メールのVerアップでNo.34729
Iranoan さん 08/09/21 10:10
 
 いけさん今日は、Iranoan です。
> 取り急ぎ、grep解決のご報告まで。
 何処からレベル・ダウン・バグがあったんですね。
> なお、キーワード検索で使うFindDownが、ヒットしてもしなくても
> ゼロが返ってくるように思います
 こちらも問題ないようです。

[ ]
RE:34729 送信時の本文文字列挿入は?No.34732
いけ さん 08/09/21 17:26
 
お世話になります。

すみません、当方のミスで間違った情報が流れて。

GREPは秀丸メールのアップで解決しましたし、FindDownについても
結局は勘違いでした。申し訳ありません。

ほぼ、やりたいことはでき、完成に近づきつつあります。

最初のタイトルから何度も脱線していますが、最後に1件だけお願
いします。

GREP結果をメール送信するのは問題ないですが、結果にコメントを
つけるときにどうするかが分かりません。(本文中にて)

今の処理としては、

1)新規メール作成
2)insert "コメント1";
3)grep実行
4)insert "コメント2";
5)メール送信

にしていますが、なぜかコメント1とコメント2が先頭にきてしまい、
最後にgrep結果が載って送信されてしまいます。

メール内容として
 コメント1
 grep結果
 コメント2
の順に記載しようとすると、どのような処理にすればよいのでしょう?

恐れ入りますが、よろしくお願い致します。

[ ]
RE:34732 送信時の本文文字列挿入は?No.34734
Iranoan さん 08/09/21 21:19
 
 いけさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> メール内容として
>  コメント1
>  grep結果
>  コメント2
> の順に記載しようとすると、どのような処理にすればよいのでしょう?
 grep 終了後にカーソルはファイルの先頭に移動する (秀丸エディと同じ動
き) ので、gofileend 文を使えば良いと思います。

[ ]
RE:34734 秀丸メール一本化で完成です。No.34735
いけ さん 08/09/21 23:23
 
お世話になります。

ありがとうございました!
gofileendで希望通りの動作になりました。

当初は秀丸メールと秀丸エディタの連携で考えていた処理も、
おかげさまで秀丸メールだけで完結できました!

本当にイメージした通りの動作がマクロで(ワンタッチという
か自動で)動作しています。

秀まるお2様、Iranoan様、ありがとうございました。

[ ]