endmacro文で複数の返値を返したいNo.08968
ohtorii さん 19/04/10 20:46
 
お疲れ様です、度々すいません(^_^;)

endmacro文で複数の返値を返せるとマクロ記述が今より楽になります。
ご検討頂けると幸いです。


以下はマクロ拡張の案です。


*endmacroの拡張

(返値を1つずつ指定する版)
endmacro "foo","bar","hoge";

(配列で返す版)
$ret[0]="foo";
$ret[1]="bar";
$ret[2]="hoge";
#num=3;
endmacro $ret,#num;


*受け取り側
retcount        //getret可能なパラメータ数
getret(n)関数   //endmacroの返値を取得する

getresultex(-1)はgetret(0)と同じ結果を返す。


推測ですが、
getarg関数と同じ考え方で拡張すれば良い気がしています。

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



*現在行っている回避方法
返値を改行で区切り受け取り側で再解釈しています(ちょっと大変です。)

(返す側)
endmacro "foo\nbar\nhoge";

(受け取り側)
$str=getresultex(-1);
$strを改行で分割する。

[ ]
RE:08968 endmacro文で複数の返値を返したNo.08970
秀丸担当 さん 19/04/11 17:11
 

execmacroでは複数の値を返すことはできないので、既に行われている通り、改行で
区切るなどをする必要があると思います。
複数もできたらいいということで、ご意見参考にさせていただきます。

現状で他に考えられる方法としては、setstaticvariableとgetstaticvariableで受け
渡しするとやりやすいかもしれないです。

[ ]
RE:08970 endmacro文で複数の返値を返したNo.08971
ohtorii さん 19/04/12 15:40
 
お疲れ様です。
お返事ありがとうございます。

setstaticvariableとgetstaticvariableを組み合わせてなんとかしてみます。

秀丸マクロへ機能を追加すると保守し続けなければならず大変なので、別件同様に気
長にお待ちしております(^o^)

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

[ ]