|
「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でコンパイルしてみました。(特に深い意味はありません。両方のコンパイラで通るコードが書きたかったという…)
|
使い方
■ コマンドラインのプログラムなので、コマンドプロンプトを開いて実行してください。
ダウンロードの後、デスくトップで解凍すると(自己解凍形式です) 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 |
|
|