|
|
|
|
|
|
---|
上位→ ↓下位 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
0 | NUL ヌル(空文字) | DLE データリンクでの拡張 | SP | 0 | @ | P | ` | p |
1 | SOH ヘディング開始 | DC1 制御装置1 | ! | 1 | A | Q | a | q |
2 | STX テキスト開始 | DC2 制御装置2 | " | 2 | B | R | b | r |
3 | ETX テキスト終了 | DC3 制御装置3 | # | 3 | C | S | c | s |
4 | EOT 伝送終了 | DC4 制御装置4 | $ | 4 | D | T | d | t |
5 | ENQ 問い合わせ | NAC 否定応答 | % | 5 | E | U | e | u |
6 | ACK 肯定応答 | SYN 同期文字 | & | 6 | F | V | f | v |
7 | BEL ベル | ETB 伝送ブロック終了 | ' | 7 | G | W | g | w |
8 | BS バックスペース | CAN 取消 | ( | 8 | H | X | h | x |
9 | HT 水平タブ | EM 媒体終端 | ) | 9 | I | Y | i | y |
A | LF/NL 復帰/改行 | SUB | * | : | J | Z | j | z |
B | VT 垂直タブ | ESC (制御コード)拡張 | + | ; | K | [ | k | { |
C | FF/CL 改ページ | FS ファイルセパレータ | , | < | L | \ | l | | |
D | CR 復帰 | GS グループセパレータ | - | = | M | ] | m | } |
E | SO シフトアウト | RS レコードセパレータ | . | > | N | ^ | n | ~ |
F | SI シフトイン | US ユニットセパレータ | / | ? | O | _ | o | DEL 削除 |
CR LF | MS-DOS | \r\n |
LF | UNIX | \n |
CR | Mac | \r |
printf("入力ファイルが見つかりません。\nもう一度入力してください。");
AfxMessageBox("入力ファイルが見つかりません。\nもう一度入力してください。");
AfxMessageBox("入力ファイルが見つかりません。\r\nもう一度入力してください。");
エスケープシーケンスとはプログラム中やバッチファイル処理中に テキスト出力をする際、エスケープコードを利用して色を付けたり、 任意の位置に移動したりできるものです。
エスケープシーケンスは、DEC社の専用ターミナルであるVT-100のもの が多く使われています。実際にはVT-100のエスケープシーケンスは100種類 以上もありますが、通常使われているものは下に示すような10種類 程度です。
@ファンクション、カーソルa.ファンク有り, ESC[>1l
b.ファンクなし, ESC[>1h
c.カーソル有り, ESC[>5l
d.カーソルなし, ESC[>5h
A色設定a.色をつける, ESC[色番号m(例:赤であれば ESC[17m)
色番号) 0* 1* 2* 3* 4* *0 戻す 緑 黒 黒地 *1 強調 黄 赤 赤地 *2 垂線 水 緑 緑地 *3 白 黄 黄地 *4 下線 青 青地 *5 点滅 紫 紫地 *6 非表示 水 水地 *7 リバース 赤 白 白地 *8 非表示 青 *9 紫
注)
- ESC[mと数値を省略するとESC[0mと同じ意味になる。(デフォルト値)
- ESC[a;b;...;xmとして複数指定が可能。 赤い文字を点滅させる場合、ESC[5;31mとする。
- ESC[0mはメーカーの規定した初期値。
- ESC[1mは強調でハイライトもしくは太字になる。
- ESC[5mは点滅すなわちブリンクとなる。
- ESC[7mはリバースすなわち反転となる。
- ESC[8mは非表示で文字を見せないため、シークレットともいう。
- 色は、黄色を黄、マゼンダを紫、水色を水と表記した。 さらに、〜地とすることによって、背景が〜色であることを示している。
Bカーソル移動a.移動, ESC[Y;XH または ESC[Y;Xf カーソルをY行目のX桁目に移動する。
b.上, ESC[YA カーソルをY行上へ移動する。
c.下, ESC[YB カーソルをY行下へ移動する。
d.右, ESC[XC カーソルをX桁右へ移動する。行の右端より先には移動しない。 (次の行へは移動しない)
e.左, ESC[XD カーソルをX桁左へ移動する。行の左端より先には移動しない。 (前の行へは移動しない)
f.1下, ESC[D
g.1上, ESC[M
h.1下1, ESC[E
i.行上げる, ESC[M
j.行下げる, ESC[L
k.位置記憶, ESC[s
l.位置移動, ESC[u
m.コンソール入力, ESC[6n
C文字消去a.後ろ消す, ESC[0J
b.後ろ消す, ESC[J
c.前消す, ESC[1J
d.面クリ, ESC[2J
e.面クリ, ESC*
f.面クリ, CLS このコマンドはバッチファイルのみに利用できる。
g.右消す, ESC[0K
h.右消す, ESC[K
i.左消す, ESC[1K
j.行消す, ESC[2K
D漢字イン・漢字アウトコード漢字コードには 1. Shift JIS (Microsoft 漢字) code と 2.JIS code と 3.EUC code の3種類に大別できるが、 そのうち、1.のみは漢字インKI・漢字アウトKOコードを必要 としない。それ以外のコードはKI code, KO codeが必要である。
また、4.区点code というものもあり、それぞれのKI code, KO codeを下に示す。
a.JIS KI code (JIS X 0208-1983 新JIS), ESC$B
b.JIS KI code (JIS X 0208-1978 旧JIS), ESC$@
c.EUC KI code (JIS X 0208-1983 UJIS), ESC$B
d.区点(7bit×2) KI code, ESC$K
e.JISローマ字(7bit) KI code (JIS X 0201), ESC(J
f.Ascii KO code, ESC(B
E注意 ESCはエスケープコード'0x1b'です。
@C言語での利用例エスケープシーケンスを使って画面出力をするヘッダファイルを作って みると次のようになる。
----(esc.h)-------------------------------------
/* Escape Sequence Library Header */
#include <stdio.h&gh;
#define crt_flush() fflush(stdout)
#define crt_out(c) fputs(c,stdout);crt_flush()
#define crt_pos(y,x) printf("\x1b[%02d;%02dH",(y)+1,(x)+1)
#define crt_clear() crt_out("\x1b[2J")
------------------------------------------------
上の例ではエスケープ文字を'\x1b'としているが'\033'とする例もある。 しかし、'\0'だけで'0x00'=NULL文字を表すため、前者の'\x1b'と記述する 方がベターである。
2002/06/05追記
この方法では Windows XP, 2000, Me, 98, 95, 3.1, MS-DOS, UNIX, Linux, Tera Term などで利用できます。
処理系によっては下線が表示できないなど細かな違いはあるようです。
Aバッチファイルでの利用例黄色の下線にするには、次のようにする。
----(mojitest.bat)------------------------------
@echo off
echo 普通の文字[4;33m黄色の下線[m戻す
------------------------------------------------
エスケープ文字はVZ Editorの場合、「ctrl+P」の後、「[」で入力 できる。
秀丸の場合[その他]-[制御コード入力]で「27 Escape」を選択 する。
2002/06/05追記
この方法では Me, 98, 95, 3.1, MS-DOS, UNIX, Linux, Tera Term などで利用できます。
Windows XP, 2000 では利用できません。
処理系によっては下線が表示できないなど細かな違いはあるようです。
大路氏の極秘プリント
応用C言語 三田典玄著 アスキー出版局