要望:起動オプションとマクロに関して No.14090
EXZS さん 03/02/18 00:46
 
済みません、再ポストです

2点ほど要望があるのですが
ひとつは起動オプションで検索実行するモノです。
これはsearchXから検索ヒットしたファイルを開く場合に行番号ではなく、検索語を
渡されてしまうからです。
今は一旦iniファイルに検索語を書き込んで、それを起動オプション時に指定したマ
クロの中から読み込んで検索するという手順を踏んでいます。
grepはあるんですけど、普通の検索が欲しいなぁと

もう一つはexecmacroで上手く変数を引き継ぐ方法はないかな?ということです。今
だとマクロの中からマクロを呼び出した場合、独立した変数の確保になると思うので
値を引き継ごうとすると一旦レジストリかiniファイルに保存してから引用するか、
同じマクロを別ファイルにせずにペタペタコピペしてしまっています。

変数を簡単に引き渡す方法があれば、マクロをライブラリー化出来るのですが・・・
どうでしょうか?
 
 

[ ]
RE:14090 要望:起動オプションとマクロにNo.14103
ひろ さん 03/02/18 17:31
 
 EXZS さん今日は、ひろです。
> execmacroで上手く変数を引き継ぐ方法はないかな?
 私も欲しいですが、今のところ EXZS さんの方法か、DLL 等でより広域的に
利用可能なグローバル変数を使うしかないと思います。
 因みに、以前から要望はでています。
 http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/t98.html
にて 00961 のスレッドを御覧ください。

[ ]
RE:14090 要望:起動オプションとマクロにNo.14115
秀丸担当 さん 03/02/18 19:03
 
>ひとつは起動オプションで検索実行するモノです。

起動オプションとして検索語を指定するというのは使い方はともかく、
起動オプションとして機能が存在するのが変ですね。
でもマクロに引数を付けるのより楽に実現できるかもしれません。

>変数を簡単に引き渡す方法があれば、マクロをライブラリー化出来るのです
>が・・・どうでしょうか?

要望はありますが、現在のところレジストリやiniファイルを使うのが
一番いい策です。 

[ ]
RE:14115 要望:起動オプションとマクロにNo.14127
EXZS さん 03/02/19 00:54
 
>>ひとつは起動オプションで検索実行するモノです。
>
>起動オプションとして検索語を指定するというのは使い方はともかく、
>起動オプションとして機能が存在するのが変ですね。
>でもマクロに引数を付けるのより楽に実現できるかもしれません。

変かどうかはともかく、WZにはそういうオプションがあるらしいです(苦笑)
単独では使いづらいかもしれないですかねぇ


>>変数を簡単に引き渡す方法があれば、マクロをライブラリー化出来るのです
>が・・・どうでしょうか?
>
>要望はありますが、現在のところレジストリやiniファイルを使うのが
>一番いい策です。

やっぱりそうですか・・・
文字列ひとつとかそんなんでいいんですけどね。
ただ汎用で使い回そうとするとそれひとつのためにiniファイルを使うのも仰々しい
し、ついつい同じファイルに貼り付けちゃうんですよねぇ(苦笑)

[ ]
RE:14127 要望:起動オプションとマクロにNo.14129
山紫水明 さん 03/02/19 08:13
 
 EXZSさん,こんにちは。

》文字列ひとつとかそんなんでいいんですけどね。
》ただ汎用で使い回そうとするとそれひとつのためにiniファイルを使うのも仰々し
》いし、ついつい同じファイルに貼り付けちゃうんですよねぇ(苦笑)

 クリップボード経由という手もあります。クリップボードの履歴を気にしなけれ
ばという限定がつきますが。

setclipboard $s;
で送って,引き継ぐ方のマクロでは
beginclipboardread;
$s = getclipboard;
で受けるという感じです。

     では, (^^)/~
                                        山紫水明

[ ]
RE:14127 要望:起動オプションとマクロにNo.14139
秀丸担当 さん 03/02/19 19:10
 
>変かどうかはともかく、WZにはそういうオプションがあるらしいです(苦笑)
>単独では使いづらいかもしれないですかねぇ

そうなのですか。
無いよりかはあったほうがいいかもしれないので検討します。

[ ]
RE:14139 要望:起動オプションとマクロにNo.14143
EXZS さん 03/02/20 00:06
 
>
>そうなのですか。
>無いよりかはあったほうがいいかもしれないので検討します。

お願いします。


山紫水明さん>
そういうやり方もあるのですね。
すっかりクリップボードはエディター上でコピーしたのを取り出すものとばかり思っ
て使ってました

[ ]
RE:14143 要望:起動オプションとマクロにNo.14173
ENCODINGSHIFTJIS さん 03/02/26 18:45
 
実行サンプルを載せておきます。

> execmacroで上手く変数を引き継ぐ方法はないかな?
 私も欲しいですが、今のところ EXZS さんの方法か、DLL 等でより広域的に利用可
能なグローバル変数を使うしかないと思います。
>因みに、以前から要望はでています。
 http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/t98.html
にて 00961 のスレッドを御覧ください。

※田楽DLLのグローバル変数をマクロ間で使う
---------- HENV1.mac      親
//  元ウィンドウで DLL をロード
loaddll hidemarudir + "\\DengakuDLL.dll";
//  グローバル変数の定義(環境変数扱いをするなら@を付ける)
if (dllfunc("SETVAR","arg0","this is arg 0.") == 0  ||
    dllfunc("SETVAR","arg1","this is arg 1.") == 0  ||
    dllfunc("SETVAR","arg2","this is arg 2.") == 0) {
    message "変数の定義に失敗!!";
    endmacro;
}
//  別マクロに実行継続
execmacro "HENV2.mac";  //  <<<<<<<<<<< 子プロセス?
// 返値を表示
menu dllfuncstr("GETVAR","arg9" );
freedll;// おしまい

---------- HENV2.mac   子
//  引数扱いのグローバル変数を読み込む
##a = 0;
while (##a < 3) {
    $arg[##a] = dllfuncstr("GETVAR","arg" + str(##a));
    menu $arg[##a];
    ##a = ##a + 1;
}
// 辺値をセット
#n =dllfunc("SETVAR","arg9","this is arg 9.");// 子でloadしなくとも使える
-------------------------------------------------

関連:
秀丸の環境変数の読み取りは使えるでしょうか?GetENV
コマンドラインから起動するに場合しか使えないですが。

[ ]
RE:14173 要望:起動オプションとマクロにNo.14178
EXZS さん 03/02/28 00:34
 
>実行サンプルを載せておきます。
>
>> execmacroで上手く変数を引き継ぐ方法はないかな?
> 私も欲しいですが、今のところ EXZS さんの方法か、DLL 等でより広域的に利用可
>能なグローバル変数を使うしかないと思います。
>>因みに、以前から要望はでています。
> http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/t98.html
>にて 00961 のスレッドを御覧ください。
>
>※田楽DLLのグローバル変数をマクロ間で使う
>---------- HENV1.mac      親
>//  元ウィンドウで DLL をロード
>loaddll hidemarudir + "\\DengakuDLL.dll";
>//  グローバル変数の定義(環境変数扱いをするなら@を付ける)
>if (dllfunc("SETVAR","arg0","this is arg 0.") == 0  ||
>    dllfunc("SETVAR","arg1","this is arg 1.") == 0  ||
>    dllfunc("SETVAR","arg2","this is arg 2.") == 0) {
>    message "変数の定義に失敗!!";
>    endmacro;
>}
>//  別マクロに実行継続
>execmacro "HENV2.mac";  //  <<<<<<<<<<< 子プロセス?
>// 返値を表示
>menu dllfuncstr("GETVAR","arg9" );
>freedll;// おしまい
>
>---------- HENV2.mac   子
>//  引数扱いのグローバル変数を読み込む
>##a = 0;
>while (##a < 3) {
>    $arg[##a] = dllfuncstr("GETVAR","arg" + str(##a));
>    menu $arg[##a];
>    ##a = ##a + 1;
>}
>// 辺値をセット
>#n =dllfunc("SETVAR","arg9","this is arg 9.");// 子でloadしなくとも使える
>-------------------------------------------------
>
>関連:
>秀丸の環境変数の読み取りは使えるでしょうか?GetENV
>コマンドラインから起動するに場合しか使えないですが。

ENCODINGSHIFTJISさん、ありがとうございます。
参考にさせていただきます。

[ ]