ファイルダンプのプログラム
 12月30日 =に悩まされたが

 家内が元の職場の人に誘われて、お餅つきに出かけた。 昼少し前に出て、夕食も終わった8時過ぎに帰って来た。 久しぶりにもとの職場のメンバーが顔を揃え、話がはずんだようだ。

 前回までに、少し仕組みが分かってきたので、Beckyのファイルを読み込んで、BASE64のデコード・JIS⇒シフトJIS変換をしながら、テキストボックスに表示するプログラムを作ってみる。
 iso2022-jp、?=などの開始と終りのキーワードを検出するなど、大分プログラムが複雑になる。 …と、実行エラー。

 漢字だから、偶数バイトでないといけないのに、奇数バイトになっている。 文字列が次の行に継続する時、行末にが使われるようだ。

 2行をくっつけて、JIS⇒シフトJIS変換をするようにする。 が、文章の途中から妙な文になる。 妙な表現になる元の文字列を見ると、またもやの位置。

 どうやら、Escコード(16進で1B)、スペース(16進で20)、=(16進で3D)が文字列の中にあると、=1B、=20、=3Dとしている。 (これもインターネットのどこかで説明があったかも)

 それを修正して、再度 xxxx.bmf を見てみると、やったぞ。 後ろの方に写真などの添付ファイルらしき文字列があるが(当面無視)、前の方にはメールヘッド・テキストが正しく表示されている。

 1月7日 プログラム作成

 家内が元の職場の人とお茶をしに行った。 じゃ、パソコンにむかって…

 前回、Beckyのメールファイルの中味が少し分り、気をよくして、OutlookExpressの受信箱.dbx をやはり前回作成したプログラムで見てみた。 が、文字化けがひどく何がなんだか分からない。 
 しかも、数行表示しただけ…。 どうやら、Beckyのようなシーケンシャルファイルではなく、特殊なファイル構造のようだ。

 実は年末年始の2~3日、インターネットでそれを調べていた。

 dbxファイルは、一つのファイルの中が、ファイルヘッド、インデックス情報、メッセージ、その他色々に分かれている。 それを確認するためには…。
f0066555_1457564.jpg
 昔、作った事があるファイルダンプのプログラムを作ってみた。

 テキストボックスを2つ配置して、一方には16進コードの表示、もう一方にはASCコードを表示する。 (判別がつく場合は、BASE64をデコードし、JIS⇒シフトJIS変換した文字列を表示する。)

 現在表示している位置より前の画面・次の画面を表示する機能、指定されたアドレスへジャンプして表示する機能、文字列の検索(ASCコード・JISコード・16進コード)機能等をつけた。

 右のプログラムの画面にたどり着くまでに、数回作り変えた。 まあ、今回の目的にあったファイルダンププログラムができた。
[PR]
by t_ichib | 2006-01-07 20:35 | 今日もまた老年プログラマー
<< プログラム作成の準備 メールをテキストファイルで保存 >>