「LHAとZIP 圧縮アルゴリズム×プログラミング入門」サポートページ
「デスマーチと戦う武蔵流プログラマ やまざき のページ」

TopPage
(サイトマップ)


Book
(書籍)


「火事場プロジェクトの法則」
サポートページ


「LHAとZIP」
サポートページ



Document
(文章)

デスマーチの記録に見る
運命の分かれ道
NEW!

武蔵流プログラマからの提言

武蔵流プログラマが斬る Eclipse

コードデザイン最前線
1
2 3 4 5 6 7 8 9
10 11 12 13 ML

C++で読む
デザインパターン


ポインタ不要論

データ圧縮の基礎

プログラマへの
アドバイス


データ指向の話1 2

インターフェースの話


Diary & Books
(日記と本屋)

やまざきの
はてなダイアリ
(日記)
[] [PC] [資産運用]
[デスマ] [映画] [2足ロボ]

やまざきの本屋


SoftWorks
(ソフトウェア)


(1) DeepFreezer
(ディープ・フリーザー)
高速アーカイバ

(English Page)

(2) Closedown-Planet
(クローズダウン・プラネット)
アクションパズルゲーム


(3) PieceMaker
(ピース・メーカー)
ファイル分割/結合


(4) WakuPita
(枠ピタ)
ウィンドウ移動便利ツール

(English Page)

(5) ググ郎
(Bookmarklet)
選択文字列をGoogleで検索

NEW!


Developing
(開発中)


(1) DeepFreezer2
yz2dlg.dll alpha6


C Magazine特集yz2


Hobby & Favorite
(道楽/お気に入り)


2LegRobo
MindStorms



p.s.
(雑談)


Profile

i_want^^;


やまざきが書いた本


[システム開発]
火事場プロジェクトの法則
どうすればデスマーチをなくせるか?
2006/09/13 発売


LHAとZIP
圧縮アルゴリズム×プログラミング入門

奥村さんと共著です。
2003/12/01 発売


やまざきが寄稿した本


SEの読書術
「本質を読む」力を磨く10の哲学 2006/02発売。



開発の現場 Vol.002
「反デスマーチ大研究」という記事。2005/09/13発売。



Software People Vol.3
「武蔵流プログラマからの提言」という記事。2003/10/31発売。



Eclipse パーフェクトマニュアル vol.1
「武蔵流プログラマが斬る Eclipse」という記事。2003/06/05発売。




「LHAとZIP 圧縮アルゴリズム×プログラミング入門」サポートページ

 やまざきが個人的にサポートしているページ。末永く売れますように…

LHAとZIP 圧縮アルゴリズム×プログラミング入門

書名 LHAとZIP 圧縮アルゴリズム×プログラミング入門
著者 奥村 晴彦 / 山崎 敏 表紙
監修 奥村 晴彦
サイズ種別 B5変/1色
ページ数 268
ISBN 4-7973-2428-7
付録 CD-ROM(1)
価格 \2,800
出版日 2003/12/01
出版社 ソフトバンクパブリッシング
目次 ・アルゴリズム編
 第1章 データ圧縮の世界
 第2章 符号化と圧縮
 第3章 その他の話題

・プログラミング編
 第1章 プログラミングを始める前に
 第2章 圧縮アルゴリズムをプログラミングしよう
 第3章 LZHエンコーダ/デコーダを作成しよう
 第4章 ZIPエンコーダ/デコーダを作成しよう
 第5章 さらなる発展のために 〜高速化とJavaでの実装〜

ネット上の本屋さんへのリンク 正誤表(2004/02/09時点。3刷には反映されると思います。)
ページ(位置) 修正文 コメント
p234
Table4-2
× シグネチャ(0x03044b50) 0304 ではなく 0403 でした。
シグネチャ(0x04034b50)
p235
Table4-4
× シグネチャ(0x05064b50) 0506 ではなく 0605 でした。
シグネチャ(0x06054b50)
p70 × 後でゆっくり租借しなおす あまり見ない文字なのでつい…(いいわけです^^;)
後でゆっくり咀嚼しなおす

正誤表(2003/12/16時点。2刷に反映される予定です。)
ページ(位置) 修正文 コメント
iv 謝辞 × unibo さん ごめんなさい>unibonさん
unibon さん
p70 Fig.2-10 × -  ツリーの階層ごとにビット数の表記が抜けている。
 1ビット
 2ビット
 3ビット
p114 Fig.2-19 ×
リンクリスト
 「リンクリスト」は「_dic」の下あたりの位置に移動。矢印はそのまま。
リンクリスト
p152 Table 3-3
ソースコードの列
× ORG_FILE_CRC23+n+1  '23+n+1'はいらないです。
ORG_FILE_CRC
p156
下のソースコード
× || dir[i]==Utility::ms_dos_delimiter // '/'
if ( dir[i]==Utility::dir_delimiter // '\\'
 コメントを入れ替えたかったのだが、行ごと入れ替わってしまっていた
if ( dir[i]==Utility::dir_delimiter // '/'
|| dir[i]==Utility::ms_dos_delimiter // '\\'
p161
ソースコードの下のほう
× || dir[i]==Utility::ms_dos_delimiter // '/'
if ( dir[i]==Utility::dir_delimiter // '\\'
 コメントを入れ替えたかったのだが、行ごと入れ替わってしまっていた
if ( dir[i]==Utility::dir_delimiter // '/'
|| dir[i]==Utility::ms_dos_delimiter // '\\'

 上記以外の誤りを見つけた方はページ下↓にあるメールアドレスまで、連絡ください。

DownLoad - 2004/01/24 up

LZH_ZIP_clone_20031106.exe [514 KB (526,523 バイト)] 自己解凍形式

ダウンロード後にファイルサイズを確認してください。

 本の付録CD-ROMに載っている LZHEncode.exe / LZHDecode.exe / ZIPEncode.exe / ZIPDecode.exe の4つのプログラムが入っています。

 20030905版との違いは、圧縮ルーチンに高速化ルーチンを搭載したことと、VC++6.0でコンパイルしたモノであること、本に載っているプログラムと同じであることです。



以下、試作段階のログというか軌跡。

DownLoad - 2003/09/05 up(終了)

LZH_ZIP_clone_20030905.exe [438 KB (448,979 バイト)] 自己解凍形式

ダウンロード後にファイルサイズを確認してください。

LZHEncode.exe / LZHDecode.exe / ZIPEncode.exe / ZIPDecode.exe の4つのプログラムが入っています。

下の2つとの違いは、ディレクトリ指定が可能になり、ディレクトリを展開して圧縮するようになりました。
あと、VC++6.0ではなく、Borland C++ 5.5.1でコンパイルしてみました。(特に深い意味はありません。両方のコンパイラで通るコードが書きたかったという…)


DownLoad - 2003/07/08 up (終了)

ZIP_clone_20030708.exe [274 KB (281,492 バイト)] 自己解凍形式

ダウンロード後にファイルサイズを確認してください。

使い方はLZHクローンと同じです。(これ作るのに一ヶ月近くかかっているんだなぁ…、以外に時間がかかる…というか、プログラミング能力が落ちているのか??)


DownLoad - 2003/06/11 up (終了) 

LZH_clone_20030611.exe [274 KB (281,084 バイト)] 自己解凍形式

ダウンロード後にファイルサイズを確認してください。


使い方

■ コマンドラインのプログラムなので、コマンドプロンプトを開いて実行してください。

 ダウンロードの後、デスくトップで解凍すると(自己解凍形式です) LZH_clone_20030611 というフォルダができるはずです。
 このフォルダ内には実行形式のプログラムしか入っていません。まず、カレントディレクトリをこのフォルダに移すか、PATHを通します。使い勝手を考えるとパスを通したほうが良いと思います。

C:\> set PATH=%PATH%;xxxxxx

 xxxxx には、LZH_clone_20030611のフォルダを指定してください。
 プログラム名 LZHFileEncode を打ち込んで→のようなメッセージが出ればOKです。
■ 圧縮・展開を行なう場合は、まずカレントディレクトリを移動します。

C:\> cd temp

 その後、圧縮をする場合は、圧縮するファイルのファイル名(右の例では test.txt)を指定して LZHFileEncode 実行します。

C:\> LZHFileEncode test.txt

 →のようなメッセージが出たら圧縮終了です。
 圧縮後のファイル名は入力ファイルに .lzh の拡張子が付いた名前になります。右の例では test.txt.lzh です。
 処理速度に関してはまったく考慮していないので、物凄く遅いです。圧縮中は気長に待ってください。(速度に関しては、今後改善していきたいと思います。)
■ LZHファイルの展開をする場合は、展開するファイルのファイル名(右の例では test.txt.lzh)を指定して LZHFileDecode 実行します。

C:\> LZHFileDecode test.txt.lzh

 展開後のファイル名は圧縮時のファイル名になります。同じファイルが存在する場合は無条件に上書きします。注意してください。
 →のようなメッセージが出たら圧縮終了です。
 こちらも処理速度に関しては考慮されていないので遅いです。(圧縮ほどではありませんが。^^;)



last update 2004/03/03
since 2003/06/12



やまざきのおすすめエレクトロニクス


やまざきのおすすめ本

やまざきのおすすめDVD

やまざきのおすすめCD



Copyright(c) 1998-2006.
YAMAZAKI Satoshi.
All rights reserved.

since 1997/12/15


このページのURLをメールで送る(友人・知人に教えてあげる)
このページを「お気に入り」に追加する(忘れないように…)
● お手紙はこちら↓。仕事の話は大歓迎です。(忙しくて返信できなかったらごめんなさい。)