統合アーカイパコンポーネント大活用マニュアル
統合アーカイバコンポーネントって何?
NORGさんが開発している、統合アーカイバプロジェクト対応DLLをDelphiで簡単に使えるコンポーネントです。DelphianWorld等で入手できます。
ここでは、各DLLの仕様を紹介して、開発作業の手助けとなることを考えて作られています。
各DLLの圧縮においての仕様の違い
圧縮する際には、ベースディレクトリと、圧縮リストを指定しますが、ここでDLLによって渡すべきリストの内容が異なります。仕様の違いですので、開発者側で調整する必要があります。
DLL名 フォルダ仕様 例 UNLHA32.DLL
TAR32.DLL
BGA32.DLL\を指定しない相対ディレクトリ ベースディレクトリがc:\games\だとすると、リスト内は、
FF4
FF5
FFDATAS.TXT
・・・
となる。フォルダ名には何も付けない。ZIP32J.DLL
CAB32.DLL\を付けた相対ディレクトリ ベースディレクトリがc:\games\だとすると、リスト内は、
FF4\
FF5\
FFDATAS.TXT
・・・
となる。フォルダ名の後に\を付ける。7ZIP.DLL \*を付けた相対ディレクトリ ベースディレクトリがc:\games\だとすると、リスト内は、
FF4\*
FF5\*
FFDATAS.TXT
・・・
となる。フォルダ名の後に\*を付ける。
*や\を付けたりする作業は、TStringListをfor文で回しながら作業するだけです。ディレクトリ名とファイル名の違いをチェックするには、ExtractFileName(FileName)の返り値が''の場合はディレクトリ名だと判定することができます。
その他のDLLは圧縮作業は行えないので、説明は不要とします。
各DLLへの圧縮率指定の方法
CMARCには、ZIPとLZHにしか圧縮率指定ができませんが、実は、TArchiverOption.UserOptionという項目で圧縮率指定を手動で行うことが可能です。ZIPとLZHは、TArchiverOption.jmに値を代入するだけで指定できるので省略します。
UserOptionはString型ですので、どんどんコマンドを追加できます。
DLL形式 コマンド 説明 CAB32.DLL -mz MSZIP圧縮
-ms 無圧縮
-ml? LZX圧縮。15-21の任意の値。CABは圧縮内部形式は3つ存在。MSZIPは高速圧縮で標準な形式。
LZXは圧縮率重視で時間が非常にかかりますがかなりの圧縮率に達します。
各DLLのSDKを参照すれば、自分でさらに細かい設定も可能です。
コマンド指定は、Format関数を使うと楽に指定できます。
例:Format('-ml%d',[TrackBar1.Position]);
Copyright(C)'2003- 部員弐号
このページ内の文章などの、引用や転載を固く禁じます。転載したい場合は、管理者までご連絡ください。