------------------------------------------------------------------------------ 2008.2.2 バイナリーファイルから学ぶ (塩住) ・ バイナリーファイルから、データー構造を知ることから始め、 データー設計から加工までを、実際にプログラムを使って体験する。 ------------------------------------------------------------------------------ 1 バイナリーファイルとテキストファイルの概略 1-2 ファイルの種類は、大きく2つに分かれます。 ・ テキストファイル ・・・文字コードで書かれた、人が読めるファイル ・ バイナリーファイル ・・・そのままでは、人が読めないファイル a)プログラム実行ファイル(EXE) b)画像データー(JPEG,GIF) 2 バイナリーファイルを開いてみる。 2-1 MIFES8の体験版をダウンロードする。 ・http://www.megasoft.co.jp/download/try.html ・ 実際にテキストファイルを、バイナリーモードで開く。 ・ 改行コード、タブコード、英数字、半角カナ、全角文字の区別をする。 ・ 文字コードの認識をする。S-JIS、EUC、Unicode など。 2-2 補足 ・ アスキーコード表(実際のデーターひとつひとつは?) http://hp.vector.co.jp/authors/VA008536/data/ascii.html http://hp.vector.co.jp/authors/VA008536/data/ascii.html http://e-words.jp/p/r-ascii.html http://www.komonet.ne.jp/~perl/chap13.htm ・ S−JIS(シフトジス)漢字コード表 http://qpon.quu.cc/pc/sjis.htm 3 実験 3-1 バイナリーモードで、データーを作成する。 3-2 プログラムで、バイナリーデーターを作成する。 3-3 メールデーター(*.eml)を、MIFESで開く。 3-4 簡易 grep.exe ツールを作成する。 4 考察 4-1 データーには、要素(最小単位)とフォーマット(並びの規則性)がある。 ・ 要素には、データーの最少単位の1バイト(byte)を基本とし、 漢字コードでは、2バイト(bytes)を使用する。 この他にも、データーの最少単位はいろいろあり、勿論、自身で仕様を任意に決められる。 ・ フォーマットは、要素がどのような規則で並んでいるのか、ルールが定められている。 身近な例では、電話番号の規則性は、市外局番−局番−番号の3要素からなる。 4-2 補足 ・ 固定長のデーターと、可変長のデーター ・ データーフォーマットには、固定長と可変長の2種類に大きく分けられる。 固定長とは、全て同じ長さに区切られてるものであり、データーがない箇所も、0か、余白で埋められる。 ・ 可変長は反対に、データーの長さが変わりので、ヘッダー情報や、区切り文字が必ず付加される。 へッダー情報では、書籍のもくじ等が、それにあたります。 CSV形式などは、カンマ(、)を区切り文字として使用してますね。 5 実験 ・ 簡単な固定長と可変長のデーターを作成してみよう。(何でもOK!) 可変長テキスト←→固定長テキスト変換コマンド(ダウンロード) http://www.vector.co.jp/soft/dos/util/se176624.html ・ Perlなら、こちらのサイトでも勉強できます。 http://www003.upp.so-net.ne.jp/NAMBOKU/perl/perl0311.html 6 雑談(読み物ブログ) ・ http://www.022.org/abeplusplus/log/eid10.html(固定長→可変長) ググッて見ましょう。いろいろなものが見つかりますよ!