SSブログ

gambas2: 外部コマンドの標準出力を読む [Gambas]

前回に続き外部コマンドの標準出力をリアルタイムに
読む方法。

基本は以前外部コマンドの使い方を書いた時と同じで
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 を
してるけど、本当なら不要なメッセージを無視したりする処理を
入れたりする必要がある。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。