[ 新規に投稿する ]

runex関数で指定したパラメータの読み書きを行う機能拡張についNo.10728
ohtorii さん 25/07/01 10:48 [ コメントを投稿する ]
  お疲れ様です

runex関数にて、呼び出し元で指定されるパラメータの変数の読み書きを行いたいです
現在は、遠回りな手順や外部のDLLを利用しなんとかやりたいことを実現していますが、もっと簡単な記述で出来たらいいのに。。。
と思いまして、投稿させていただきました

(コードの例)
$MyStdIn = "Foo bar";
$MYStdOutAndStdErr = "";
runex "MyCommands"
        省略
        , 6,$MyStdIn, //stdin  0:none, 省略, 【6:refcall】
        , 9, $MYStdOutAndStdErr  //stdout 0:none, 省略, 【9:refcall】
        , 9, $MYStdOutAndStdErr //stderr 0:none,省略 2-9:same as stdout's param
        省略
    ;

callref関数の内部実装を利用して、無理なく作れるのでは?と思っています
ご検討いただけますと幸いです、よろしくお願いいたします。
[ ]
RE:10728 runex関数で指定したパラメータの読み書きを行う機能No.10729
秀丸担当 さん 25/07/01 12:47 [ コメントを投稿する ]
  runexでは変数への直接はできませんが、標準入出力関係はJavaScript対応でけっこう力を入れている部分なので、ぜひともJavaScriptを使ってほしいです。
同期でも非同期でもなかり高度なことが簡単にできるようになっています。
hidemaru.runProcessなどに説明があります。

従来のマクロのとのやり取りを変数でする場合は、getVarとsetVarを使う方法があります。
例:

$MyStdIn = "Foo\nbar\n";
$MyStdOut = "";
js{
  var processInfo = hidemaru.runProcess("cmd /c sort", ".", "stdio", "sjis" );
  var stdIn = processInfo.stdIn;
  stdIn.write( getVar("$MyStdIn") );
  stdIn.close();

  var stdOut = processInfo.stdOut;
  setVar("$MyStdOut", stdOut.readAll(10*1000));
}
message $MyStdOut;
endmacro;
[ ]
RE:10729 runex関数で指定したパラメータの読み書きを行う機能No.10730
ohtorii さん 25/07/01 19:29 [ コメントを投稿する ]
  サンプルありがとうございます、
JavaScriptを試してみます!
[ ]

[ 新規に投稿する ]