3

QBasicで最後に印刷されたテキストを取得する方法を知りたいです。プログラムが複数の行を印刷する場合と同様に、最後の行を印刷する方法。

このような-

Print "aaaaaaa"
Print "bbbbbbb"

次に、プログラムは最後の印刷行を取得しますi.e. bbbbbbb

4

3 に答える 3

4

もしかしてこういうこと?

str$ = "aaaaaaa"
PRINT str$
str$ = "bbbbbbb"
PRINT str$
PRINT "last printed line:"; str$

または、ここで説明したように、セグメント &HB800 で PEEK を使用して画面メモリから文字を取得できます。

DEF SEG = &HB800
mychar = PEEK(1) 'etc

PEEK が必要な場所を正確に知るために、最後に印刷された行を追跡する必要があるため、おそらく非常に複雑になります...

そのため、ここで達成しようとしていることを正確に再考することをお勧めします。このような「スクリーンスクレイピング」は通常は悪い考えだからです。

于 2015-06-15T19:20:53.477 に答える
1

最後に出力された文字列がセミコロンで終わっていないことを考えると、このコードはうまくいくはずです:

 FOR char.num = 1 TO 80
 last.line$ = last.line$ + chr$(SCREEN(CSRLIN - 1, char.num))
 NEXT char.num
 PRINT "Content of last line printed to is:"; last.line$

説明:CSRLINカーソルの現在の行を返します。SCREEN(y, x)画面の y, x 位置 (行、行) にある文字のアスキー コードを返します。セミコロンで終わらない文字列が画面に出力されるたびに、カーソルの現在の行 (y 位置) に出力され、1 ずつインクリメントされます。

于 2015-10-24T13:39:24.003 に答える