2011年3月12日土曜日

ANSI標準エスケープシーケンス

ANSI標準エスケープシーケンスを利用して、画面を制御する例題です。

エスケープシーケンスは、ESCコード(1BH)から始まる文字列をスクリーンに送ることにより、スクリーンを制御することをいいます。

実行するとカーソル位置の移動、テキスト属性の変更、テキストカラーの変更、背景色の変更が行われます。

以下、Windows 系のコマンドプロンプトでは ANSI 標準エスケープシーケンスが対応していない場合があるので、XP 以前での設定方法を掲載しておきます。

Windows 系のコマンドプロンプトにて利用する場合には、設定が必要な場合があります。
VC++ やフリーのコンパイラである LCC、BCC 等では OS の違いにより表示されない場合があります。
一応の解決作としては、

PC/AT 互換機では config.sys (NT系ではconfig.NT) に ansi.sys を device として登録する。
ex.
device=%SystemRoot%\system32\ANSI.SYS
とすれば良いみたいです。
それでも駄目であれば、
step1: config.nt に ansi.sys を追加。
step2: config.nt の最後に "dosonly" と追加。
step3: command.com を起動。
※ NT系のコマンドプロンプトは cmd.exe です。
command.com は system32 に含まれています。
step4:エスケープシーケンスを含むコマンドを実行。
MS-DOS5.0 の command.com があれば、step2,3 の代わりにそれを実行してもできるようです。

※ cygwin 環境では特に設定しなくても動作します。

0 件のコメント:

コメントを投稿