English help on website



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

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

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

返り値はありません。
例:
js{
  //stdIn = ...などの前処理
  stdIn.write(s);
}

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

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

返り値はありません。
例:
js{
  //stdIn = ...などの前処理
  stdIn.writeLine(s);
}

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

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

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

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

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

返り値は文字列です。
タイムアウトの場合はundefinedが返ります。
例:
js{
  //stdOut = ...などの前処理
  s=stdOut.readAll(nTimeout);
}

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

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

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

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

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

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

例:
js{
  //stdOut = ...などの前処理
  s=stdOut.readSeparated(nTimeout,123);//123バイトまで
}


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

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

返り値はありません。

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

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

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

返り値はありません。

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

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

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

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

返り値はありません。

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

例:
js{
  //stdOut = ...などの前処理
  stdOut.onReadSeparated(function(s){},123);//123バイトまで
  stdOut.onReadSeparated(function(s,id){},123);//123バイトまでid付き
}

例:
jsmode "\\" + currentmacrofilename; //オブジェクトが他のマクロと被らないように固有の名前空間にしてください
js{
  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