パソコン活用研究5番街(Visual Basic、Excel(VBA)、BASIC プログラミング研究)

PRINT文での表示の小技

PRINT文で表示する場合の、細かな小技をとりあげてみました。

1 数値の表示
PRINT文で数値を表示すると1文字分の空白が数値の前後に出力されます。負の数の場合は空白の
代わりに - (マイナス)が表示されます。
ただし、N88Basic互換for winでは数値の後ろの空白は出力されないようです。




2 数値を文字に変換
数値を文字変数に変換するstr$や16進数の文字変数に変換するhex$を使って数値を文字変数に変換
することは、関数を使う(文字列操作)でとりあげていますが、表示上の点で注意があります。
str$で文字に変換すると、数値の前の空白までいっしょについてきてしまいます。一方hex$では空白は
取り去られています。
Basicによっては、str$で文字に変換すると、空白が取り去られるものもあるようです。



x1〜x5という文字を作りたい時に単純にstr$を使うだけでは、
x 1のようにxと1の間に1個空白が入ってしまいます。


そこでちょっとした工夫ですが
PRINT "x"+RIGHT$(STR$(I), LEN(STR$(I))-1)
としてやると、x1,x2,x3...という文字列が作れます



3 左に0パッディング
ダンプ表示のプログラムなどで
0000:
0010:
0020:
0030:
のような表示を見ることがありますが、左に0をパッディングした表示です。
これは、
10 FOR I=1 TO 3
20 PRINT RIGHT$("000"+HEX$(I*16), 4);":"
30 NEXT
のようにすれば表示できます。



4 CONSOLE
consoleはテキスト画面のモードの設定を行います。
N88Basicにおける書式は以下の通りです。概ねどのBASICでも書式は同じと思います。

console スクロール開始行, スクロール行数, ファンクションキー表示スイッチ, カラー白黒スイッチ

ファンクションキー表示スイッチ: 1を指定すると最下行にファンクションキーに定義されている文字列を
表示します。 0を指定すると表示しません。
カラー白黒スイッチ:  0では白黒画面、1ではカラー画面になります。

スクロール開始行とスクロール行の指定は以下のようになります。
例えば、以下のように
WIDTH 80, 25: CONSOLE 2,20,1,1 を実行してみます。


そうすると、
0, 1行目がメッセージ領域
2〜21行目までの20行がスクロール領域
22行目以降が再びメッセージ領域
になります。


PRINT文を実行すると、表示はスクロール領域内にされ、スクロールはスクロール領域内のみで行われます。
メッセージ領域に表示する場合は、LOCATE文で位置を指定してPRINT文を実行します。
CLSによる画面消去もスクロール領域にのみ有効になります。
スクロールで消えては困るメッセージ(常時表示させたいメッセージ)がある場合は、適宜CONSOLE文
を使うと便利です。

なお、ファンクションキー表示スイッチを1に指定しているので、ファンクションキーに定義された文字列が表示
されています。

WIDTHについては、BASIC超基本1で説明していますので参照して下さい。


TOP PAGE >Basic活用研究目次