0

なぜこのように機能するのか疑問に思います。

EclipseIDEと統合されたIBMRFT6.xバージョン。次の行を実行して、別のプログラムからテキスト出力を取得します。

String Text = "";
String Text_Value = "";

Text = (String) outputText().getProperty(".value");
Text_Value = (String) outputText().getProperty(".value");

outputText()。getProperty( "。value")によってキャプチャされた元の出力 は

2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup sc11
************************************************************
 CPU0  Usage                    : 3.2%
 CPU1  Usage                    : 6.29%
 Smooth CPU Usage               : 4.65%
 Real CPU Usage                 : 4.65%
------------------------------------------------------------
 CPU Usage Sample Rate          : 2(s)
 CPU OverLoad Level[1]          : 10%
 CPU OverLoad Level[2]          : 20%
 CPU OverLoad Level[3]          : 90%
 CPU OverLoad Level[4]          : 95%
 CPU Peak Usage                 : 99.88%
 CPU Peak Usage Time            : 2008-10-31 20:12:54
------------------------------------------------------------
 The History Real CPU Usage     :
 No   %CPU   %CPU   %CPU   %CPU   %CPU   %CPU   %CPU   %CPU
 0     3.87   4.76   4.72   4.76   4.76   4.69   4.65   4.65
 1     4.69   4.65
************************************************************

そして奇妙なことがここで起こります。文字列変数を取得しました

Text = "\r\n2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup sc11"

Text_Value = "\r\n2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup     sc11\r\n************************************************************\r\n.....4.69   4.65
          \r\n************************************************************"

Text_Valueはまさに私が望むものですが、ここの「showcpupsc11」では常にテキストが切り捨てられます。

twolineは同じことをすることが期待されています。

プログラムの他の出力を試してみると、これは起こりません。2つの変数は同じです。

4

1 に答える 1

0

おそらく同期の問題です。コントロールが完全に設定されていないため、あなたTextは切断されます。ラインが実行されるまでText_Valueに、outputText()オブジェクトは完全に入力されるため、Text_Value切り捨てられません。sleep(10)行の前にコマンドを挿入することで、これを証明できTextます。値10を、outputText()コントロールが完全に入力されるのに十分な長さの任意の秒数に変更します。

于 2011-09-29T18:41:17.007 に答える