CHAPTER 6: 非印字データ文字


CHAR型タイプ 3 またはTEXT型アトリビュートに 端末およびファイルからロードしてデータを登録する時に 制御文字、改行などの特別の文字が含まれているデータの場合、 エラーが生じることがあります。 このようなエラーが発生する原因として、これらの文字は オペレーティングシステムまたはターミナルの機能において 特別な意味を持つためで、データとして扱われないためです。 例えば、<Ctrl+D>文字は、通常 UNIXではファイル終端文字(Windows NTでは <Ctrl+Z>)で、端末上からの入力あるいはデータファイルに含まれている場合、 データエントリを終了します。

mxまたはmrルーチン (詳細は、 Empress ホスト言語: C インターフェイス - mx ルーチン または Empress ホスト言語: C カーネルレベルインターフェイス - mr ルーチン を参照してください。) を使用した C 言語プログラムから、 問題の文字(ASCII の NUL以外)をロードすることは常に可能です。

ファイルからロードした場合、以下の文字は、通常、終了文字として扱われ、 格納されません。

表 6-1 終了文字

文字名 8進表現
NUL 000
LF 012
VT 013
FF 014
CR 015
<Ctrl+V> 026

端末からのデータ登録する場合、 上記の表以外にも問題の原因となる可能性がある文字があります。 (これは端末の機能によっても異なります。) 以下に問題の原因となる文字を示します。

表 1-2 問題の原因となる文字

文字名 8進表現
<Ctrl+D> 004
<Ctrl+H> 010
<Ctrl+P> 020
<Ctrl+Q> 021
<Ctrl+S> 023
<Ctrl+U> 025

データとして、このような制御文字を入力する必要がある場合、 利用している固有のオペレーティングシステム上で困難な状況が発生するかどうかを 最初にテストすることを提案します。 なんらかの問題がある場合は、データをロードするために短い C 言語プログラムが 必要になります。 テーブルにデータ値を登録する簡単なプログラムを Empress ホスト言語: C インターフェイス - mx ルーチン マニュアルで解説されています。