本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

Excel 5.0 とテキスト ファイル

文書番号: 402333

最終更新日: 1997/10/23


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402333

概要

本文書は、Excel 5.0 と「テキスト ファイル」に関する情報をまとめています。

詳細

1. テキスト ファイルとは

テキスト ファイルという用語は Excel 5.0 の中でも頻繁に使われています。他の OS (オペレーションシステム) やハードウェア、アプリケーション間でデータのやり取りを 紹介するような文書には必ずといっていいほどこの言葉が使われています。
テキスト ファイルは、読むことができるキャラクタ (文字) と改行やタブなどの一部 の基本的な制御コードを含むファイルを指します。これらの制御コードは ASCII や JIS などの機関で定められたものが使用されます。Microsoft(R) MS-DOS(R) (以下 MS-DOS) で は type コマンドで表示される AUTOEXEC.BAT や CONFIG.SYS、拡張子が .TXT などのフ ァイルがその代表です。これに対して「バイナリ ファイル」と呼ばれ、type コマンドで は表示できない実行ファイルや Excel 5.0 の標準のデータ ファイルなど
のファイル形式があります。

2. テキスト ファイルの基礎知識

まず、テキスト ファイルを構成する要素からテキスト ファイルの意味を考えてみます。

キャラクタ セット

「 1. テキスト ファイルとは」で「読むことができるキャラクタ」と説明した部分の実 際のデータは数字としてのコードで格納されています。「 A 」なら「 A 」というデザインが 入っているのではありません。そもそもコンピュータは、内部的にはすべて数値化されて いて人間の使う文字などは認識できません。その数値化されたデータを視覚的な文字デザ インと対応させている (テーブル) のがキャラクタ セットです。例えば、16 進数で 41 であれば「 A 」というデザインに割り当てているということです。
このキャラクタ セットには、いくつもの種類があります。しかしパーソナル コンピュ ータの世界では ASCII が、またそれに日本語を拡張した Shift JIS コードが使われてい ます。したがってコンピュータや OS がサポートするキャラクタ セットが異なれば、例え 同じデータであっても全く違う文字が表示されることになります。
同じ MS-DOS をベースとするパーソナル コンピュータであっても、使用する文字が
ASCII レベルであれば問題は無いのですが、16 進数で 2 桁目が 9 以上のコードは ASCII では定義されていないために、国、OS、メーカーによっては異なるコードが振られている ことがあります。
例として、DOS/V パーソナル コンピュータを使い、日本語モードで英語版のソフトウェ アを動作させると罫線の部分がカタカナで表示されたり、MS-DOS アプリケーションで使わ れるスマイル マークのコードを Microsoft(R) Windows(R) (以下 Windows) で表示させる と別の文字に化けたり、日本語でも JIS のバージョンやメーカーによって異なる文字が表 示されたりすることがあります。

改行文字

テキスト ファイルは、ただ文字が並んでいるだけではありません。例えば AUTOEXEC. BAT を type コマンドを使ってダンプしてみると、一行一行づつ区切られています。これ を DEGUB.EXE で 16 進数でダンプしてみると、今度は行単位では区切られていません。 行の区切りには 16 進数で 0D、0A のコードが並んで、その次に次の行のコードが来てい ます。MS-DOS の場合、この 0D と 0A が行の区切りを表します。今後このコードをそれ ぞれ CR と LF という名で呼ぶことにします。CR はキャリッジ リターン、つまり復帰を 表します。LF はライン フィードで改行を表します。この CR と LF が 1 セットで行を 分割する働きをしているのです。type コマンドはこのコードが来るとそれ以降のコード を次の行に送ります。しかし DEGUB.EXE コマンドは CR/LF もデータの 1 つとして取り 扱います。
これは「 MS-DOS の場合」であることに注意してください。UNIX や Macintosh では若 干異なります。このことについては、後で説明します。
データベースや Excel 5.0 などの表計算アプリケーションでは、type コマンド同様に、 この CR/LF までを 1 行として取り扱います。この 1 行を「レコード」と呼ぶこともあ ります。

EOF (ファイルの終端コード)

1 行の終わりは改行コードでしたが、1 ファイルの終わりには何か必要でしょうか。MS -DOS では 16 進数で 1A がそれにあたります。これは EOF (End of File) と呼ばれるこ とがあります。実は MS-DOS には、このファイルの終端コードは必要ないのです。このコ ードは MS-DOS の元になった 8 ビット CPU 用の汎用 OS である CP/M との互換性を持た せるための仕様です。MS-DOS はディレクトリで、バイト単位でファイルの大きさを管理 しています。ですから EOF は無くても MS-DOS はファイルの終わりを認識することはで きます。
しかし、一部のテキスト エディタは強制的にこのコードをファイルの終わりに付加し ます。理由は解りませんが、これがデータの互換性にとって問題となることもあります。

区切り文字 (デリミタ)

データベースや表計算アプリケーションでは、レコードの中に「項目 (アイテム) 」、 「フィールド」または「列」という名前で呼んでいる概念を持っています。ここでは Excel 5.0 を中心として考えますので「列」という名前を使用します。レコードと列の長 さが固定であれば、「何文字目から何文字目までは第一列 (A 列) 」ということがいえま すが、可変であったときには困ります。
そこで、各列の間に特別なコードを入れて、これを列の「区切り」として扱うという約 束を決めることが考えられます。このコードを「区切り文字 (デリミタ) 」と呼びます。ア プリケーション間でデータをやり取りする場合、この区切り文字の約束を合わせて置かな ければ区切る位置が違ってきます。Excel 5.0 ではこの区切り文字を任意の文字に設定で きますが、多くの場合、「, (カンマ) 」やタブ コードが区切り文字として使われているよ うです。

3. MS-DOS、Macintosh、UNIX でのテキスト ファイルの違い

MS-DOS も Macintosh も ASCII キャラクタ セットもしくは、これをベースとした
Shift JIS を使用しています。この点では互換性はあるのですが、改行文字が異なります。 MS-DOS では先程説明したように CR/LF を使用していますが、Macintosh では CR のみで す。このため、行 (レコード) の区切りが変わります。テキスト ファイルを媒介として データを交換する際には注意が必要です。ただし、MS-DOS と Macintosh では、ディスク フォーマットに元々互換性がありません。これを吸収するための Mac OS 標準の「 Apple File Exchange 」やその他のツールを使えば、これら改行コードを変換してくれますので 問題になることは少ないでしょう。LAN を使って、ファイル サーバーを共有していると きに問題となる程度でしょう。
UNIX には注意が必要です。UNIX には元来テキスト ファイルとかバイナリ ファイルと いう概念はありません。すべて同じファイルとして扱われます。MS-DOS や Macintosh で言 うテキスト ファイルの場合には、改行文字は Macintosh と同様 CR のみですが、キャラ クタ セットが同じという保証はありません。UNIX はメーカーによって微妙に異なってい ます。
将来は UNICODE というパーソナル コンピュータやワークステーション関連のメーカー が集まって策定している新しいコード体系が主流となると考えられます。すでに
Microsoft(C) Windows NT(TM) は、内部的には UNICODE をサポートしています。他のプ ラットフォームやアプリケーションがこれをサポートすればテキスト ファイルの互換性 は格段に向上するでしょう。

Keywords: KBINFO KB402333
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system