gambas2: 外部コマンドの標準出力を読む [Gambas]
前回に続き外部コマンドの標準出力をリアルタイムに
読む方法。
基本は以前外部コマンドの使い方を書いた時と同じで
SHELL か EXEC を使うんだけど、ちょっと書き方が違ってくる。
とすると標準出力にメッセージが出る度にイベントが発生して
Process_Read() が呼ばれるので、そこにプログレスバーを
更新する処理を記述する。
実際にはこんな感じになる。
ちなみにこの例でメッセージの行数を決め打ちして毎回 +0.1 を
してるけど、本当なら不要なメッセージを無視したりする処理を
入れたりする必要がある。
読む方法。
基本は以前外部コマンドの使い方を書いた時と同じで
SHELL か EXEC を使うんだけど、ちょっと書き方が違ってくる。
DIM hProcess AS Process hProcess = SHELL "(外部コマンド)" FOR READ
とすると標準出力にメッセージが出る度にイベントが発生して
Process_Read() が呼ばれるので、そこにプログレスバーを
更新する処理を記述する。
実際にはこんな感じになる。
PUBLIC SUB Main() DIM hProcess AS Process hProcess = SHELL "(外部コマンド)" FOR READ END PUBLIC SUB Process_Read() DIM sLine AS String READ #LAST, sLine, -512 pgbProgress.Value += 0.1 END
ちなみにこの例でメッセージの行数を決め打ちして毎回 +0.1 を
してるけど、本当なら不要なメッセージを無視したりする処理を
入れたりする必要がある。
コメント 0