忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

BHT-BASIC4.0:キー入力について(BHT-1300)
今回はBHT-BASICのキー入力について説明したいと思います。
私が使った BHT-1306B ですが、 商品コードなどはバーコードでスキャンすれば入力できますが、 数量などを入力するにはキー入力が必要になります。

以下のソースは、画面モードを「漢字モード」に設定し、キー入力を数字入力方式に設定して 文字列入力を行います。 カーソル表示の制御は LOCATE 命令で、ブロック表示になる様に行います。
	PRIVATE CD$
	SCREEN 1				'漢字モード
	OUT .pnKeyEnt, .pvKyNm	'数字入力方式に設定
	LOCATE , , 2			'カーソルをブロック表示
	INPUT "コード=", CD$	'文字列入力
	WAIT 0, &h01			'キー入力待ち
	END

このソースの実行の様子は以下の様になります。

この場合、入力はずっとできるのかと思いきや、40文字を入力したところでカーソルが止まります。 BHT-BASICでは INPUT 命令では文字変数の最大文字列長までしか入力できない様です。

当然以下の様に文字列変数の領域を4文字までとすれば、4文字までしか入力できません。
	PRIVATE CD$[4]			'4文字がMAX
	SCREEN 1				'漢字モード
	OUT .pnKeyEnt, .pvKyNm	'数字入力方式に設定
	LOCATE , , 2			'カーソルをブロック表示
	INPUT "コード=", CD$	'文字列入力
	WAIT 0, &h01			'キー入力待ち
	END

この INPUT 命令の仕様は便利なように思いますが、 キー入力の途中で何かを行いたい場合は別の方法が必要だと思います。

	PRIVATE NN&				'長整数変数
	SCREEN 1				'漢字モード
	OUT .pnKeyEnt, .pvKyNm	'数字入力方式に設定
	LOCATE , , 2			'カーソルをブロック表示
	INPUT "数量=", NN&		'数値入力
	WAIT 0, &h01			'キー入力待ち
	END

このソースでは桁数が短い場合は問題無く数値入力ができますが、 下図の様に桁数を長く入力すると以下の実行時エラーが発生します。
エラーコード(&H06)(演算結果が許容範囲をこえています。)
この結果から業務プログラムでは INPUT 命令は使えない様に思います。
ではどうすればいいのかは今後の記事にご期待ください。

=====
2016/04/02:の時の情報











PR

コメント

コメントを書く