テキスト・ファイルとバイナリ・ファイル

 処理対象のデータをファイルから読み込む,処理後のデータをファイルに書き込む。読み書きのどちらでも考える必要があるのがファイル形式です。普段何気なく利用しているファイル形式を学ぶと,コンピュータで扱うデータについて知ることができます。

●テキスト・ファイルとバイナリ・ファイル

 様々なファイル形式は「テキスト・ファイル」と「バイナリ・ファイル」に大きく分かれます。
 テキスト・ファイルとは,文字コードのみから構成されるファイルのことです。Windows 上でテキスト・ファイルを作成する場合は,メモ帳や「秀丸」などのテキスト・エディタと呼ばれるアプリケーションを使用します。
 テキスト・ファイル以外の種類のファイルは,バイナリ・ファイルと呼ばれます。例えば,ワープロソフト「MS Word」を用いて文字のみからなるWord ファイルを作成しても,それはテキスト・ファイルではなくバイナリ・ファイルとして保存されます。Word を使って保存したファイルには,文字に関する情報の他に,ページや文字書式(フォント)などに関する情報を含むWord 独自の形式のバイナリ・ファイルとして保存されるわけです。表計算ソフト「Excel」やプレゼンソフト「Power Point」を使った場合も同様です。従って,ワープロなど特定のアプリケーションを使って作成したファイルを開くためには,そのファイルを作成したアプリケーションが必要となるのです。
 そのほか画像ファイルや音声ファイル,プログラム(アプリケーション)そのものもすべてバイナリ・ファイルになります。
 簡単に言うと,人間が直接読めるファイル形式がテキスト・ファイル,読めないファイル形式がバイナリ・ファイルです。
 ではバイナリ・ファイルを「メモ帳」で開くとどうなるでしょう。次の図はワープロ文書を「メモ帳」で開いたところです。意味不明の文字が含まれているようにみえます。これはプログラムの命令を表すバイト列を無理やり文字コードと解釈して表示したからです。

=ワープロ文書を「メモ帳」で開いたところ=

●ダンプ・プログラム

 バイナリ・ファイルの内容を調べられるプログラムのことを「ダンプ・プログラム」といいます。このダンプ・プログラムは,ファイルの内容を1バイトずつ区切って16進数で表示します。バイナリ(binary)とは「2進数の」という意味です。

=バイナリ・ファイルをダンプ・プログラムで開いたところ=

 ダンプ・プログラムを用いてテキスト・ファイルを開くこともできます。文字コードの中で,改行位置を表す0D(復帰コード)と0A(改行コード)は覚えておきましょう。文章の区切りが分かって便利です。

=テキスト・ファイルをダンプ・プログラムで開いたところ=

●バイナリ・形式のデータファイル

 画像・動画・音声などを格納したデータ・ファイルは,バイナリ・ファイル形式になっています。テキスト・ファイル形式では,あまりにもファイルのサイズが大きくなってしまうからです。
 次の図は真っ黒なBMP形式の画像を,ダンプ・プログラムで開いたものです。「黒」のデータですから「00 00 00」が続くはずですが,その前に違うデータも付加されているのが分かります。これは画像データの前に,画像の幅,高さ,1ピクセルあたりのビット数,圧縮の有無といった画像特有のデータが付加されているのです。この付加情報のことを「ヘッダー」といいます。 このヘッダー情報は,BMP形式だけでなく,他の様々なファイル形式にも活用されているテクニックです。

=テキスト・ファイルをダンプ・プログラムで開いたところ=