English help on website



Stdioオブジェクト(Ver9.34対応版)
目次JavaScript対応− Stdioオブジェクト
Stdioオブジェクト
Stdioオブジェクトは、ProcessInfoオブジェクトのstdIn, stdOut, stdErrプロパティにあります。
それぞれの例は、秀丸エディタが呼び出し側となる場合の例です。呼ばれる側になる場合はstdInとstdOutが逆になります。

メソッド
write(s)
文字列を書き込みます。

パラメータ1に文字列を指定します。

返り値はありません。
例:
stdIn.write(s);

writeLine(s)
文字列の末尾に改行を追加して書き込みます。

パラメータ1に文字列を指定します。

返り値はありません。
例:
stdIn.writeLine(s);

writeSimulation(s)
writeメソッドで文字列を書き込んだことを想定した場合のバイト数を取得します。(書き込みはしません)

パラメータ1に文字列を指定します。

返り値は数値で、バイト数です。
バイト数を計算するためのエンコーディングはProcessInfoオブジェクトによって決定されています。
例:
nByte = stdIn.writeSimulation(s);

readAll(nTimeout)
全て読み取って文字列を返します。

パラメータ1にタイムアウトを指定します。(ミリ秒)
応答が無い場合は、タイムアウトまで固まります。

返り値は文字列です。
タイムアウトの場合はundefinedが返ります。
例:
s=stdOut.readAll(nTimeout);

readLine(nTimeout)
行を読み取って文字列を返します。

パラメータ1にタイムアウトを指定します。(ミリ秒)
応答が無い場合は、タイムアウトまで固まります。

返り値は文字列です。
タイムアウトの場合はundefinedが返ります。
例:
s=stdOut.readLine(nTimeout);
readSeparated(nTimeout,nSeparate)
指定の区切りまでを読み取って文字列を返します。

パラメータ1にタイムアウトを指定します。(ミリ秒)
応答が無い場合は、タイムアウトまで固まります。

パラメータ2に区切りを指定します。
0を指定すると空行(改行だけの行)までを読み取ります。
1以上を指定すると、指定バイト数までを読み取ります。

返り値は文字列です。
タイムアウトの場合はundefinedが返ります。
例:
s=stdOut.readSeparated(nTimeout,0);//空行まで

例:
s=stdOut.readSeparated(nTimeout,123);//123バイトまで


onReadAll(func)
全て出力されているときに呼ばれる関数を指定します。

パラメータ1に関数を指定します。
マクロが終わった後に、非同期的に呼ばれることになります。
応答が無くても固まりせん。

返り値はありません。

呼ばれる関数のパラメータ1に、読み込まれた文字列があります。
呼ばれる関数のパラメータ2に、idがあります。(V9.25以降)
例:
stdOut.onReadAll(function(s){});

onReadLine(func)
行までが出力されているときに呼ばれる関数を指定します。

パラメータ1に関数を指定します。
マクロが終わった後に、非同期的に呼ばれることになります。
応答が無くても固まりせん。
一度関数を指定すると、自動的に次の行も読んでいきます。

返り値はありません。

呼ばれる関数のパラメータ1に、読み込まれた文字列があります。
呼ばれる関数のパラメータ2に、idがあります。(V9.25以降)
例:
stdOut.onReadLine(function(s){});

onReadSeparated(func,nSeparate)
指定の区切りまでが出力されているときに呼ばれる関数を指定します。

パラメータ1に関数を指定します。
マクロが終わった後に、非同期的に呼ばれることになります。
応答が無くても固まりせん。
onReadLineとは違い、自動的に次の区切りまでは読みません。
次の区切りを読む場合、もう一度onReadSeparated()で指定します。

パラメータ2に区切りを指定します。
0を指定すると空行(改行だけの行)までを読み取ります。
1以上を指定すると、指定バイト数までを読み取ります。

返り値はありません。

呼ばれる関数のパラメータ1に、読み込まれた文字列があります。
呼ばれる関数のパラメータ2に、idがあります。(V9.25以降)
例:
stdOut.onReadSeparated(function(s){},0);//空行まで
stdOut.onReadSeparated(function(s,id){},0);//空行までid付き

例:
stdOut.onReadSeparated(function(s){},123);//123バイトまで
stdOut.onReadSeparated(function(s,id){},123);//123バイトまでid付き

例:
stdOut.onReadSeparated(onReadA,0);
function onReadA(s){
  stdOut.onReadSeparated(onReadB,123);
}
function onReadB(s){
  stdOut.onReadSeparated(onReadA,0);
}

close()
標準入出力を閉じます。

パラメータはありません。

返り値はありません。

flush(nTimeout)
write/writeLineメソッドを呼んだ後の場合、書き込みし切るまで待機します。(V9.20以降)
パラメータはタイムアウトを指定します。

返り値は、書き込みし切っている場合は0以外、書き込みし切っていない場合は0になります。


プロパティ
atEndOfStream
標準入出力を終わっているどうか。(取得)
数値で、0は終わっていません。0以外は終わっています。

flushed
write/writeLineメソッドで出力し切っているいるどうか。(取得)(V9.20以降)
数値で、0は書き込みし切っていません。0以外は書き込みし切っています。

id
このStdioを識別するID。(取得)(V9.25以降)
同一プロセスの秀丸エディタ上で、1から加算され、他のStdioと被ることはない値です。



参照:
runProcess
getCurrentProcessInfo
ProcessInfo