At 24 Oct 2003 06:53:15 GMT,
Junn Ohta wrote:
> 
> ことによると、もしかして、ひょっとすると、遠からず
> 解析できてしまうかもしれませんね。:-D

圧縮を伸長できるようになりました。

---
■株式会社電子辞典の HD 辞典シリーズのファイル形式

4096バイト毎に LZSS で圧縮
まとめて圧縮するデータの塊をチャンクと呼ぶ
リトルエンディアン(LE)
本文は UTF-16 (LE)
ヘッダ、オフセット部、チャンク部で構成

■ヘッダ

0x50バイト

  位置 (バイト数)
  -----------------
  0x00 (4) 'BODY' など
  0x16 (4)
  0x1a (4) チャンク部開始位置(ファイルの先頭から)
  0x1e (4) チャンク部のサイズ
  0x40 (4) 圧縮前データサイズ

ファイルサイズ = チャンク部開始位置 + チャンク部のサイズ
チャンク数 = (チャンク部開始位置 - 0x50) / 4

■オフセット部

(4 * チャンク数) バイト
各チャンクの開始位置(チャンク部開始位置から)の列
4バイト、LE

■チャンク部

4096バイト毎に LZSS で圧縮

まず、1ビットのフラグ。
フラグが 1 のときは続く8ビットが文字。
フラグが 0 のときは、続く8ビットで位置を5ビットで一致長。
一致長には2を加える。

---
藤井宏憲