Zlibについて

解決


  2012-05-18 04:10:25  No: 42215

いつも参考にさせてもらっています。
どうしてもわからないことがあり質問させてもらいます。

1、ZIPファイルをメモリにロードする。
2、内部の1つのファイルに対して文字列を書き換える。
3、別の名前で書き出す。

以上のことを
http://ht-deko.minim.ne.jp/tech049.html
を参考にSciZipFile.pasを使用して実装しました。

いざ実際に使用する資料が届き、ロードしてみようとすると、
ロード自体はエラーにならないのですが、本来 TZipFile.Count=13
のはずのファイル数が、TZipFile.Count = 1;
となってしまいます。
そのため、目的のファイルを見つけられず、処理が行われません。
内容を確認したところ、構成ファイル数が本当に1つになっているわけでもなく
Windowsの圧縮ファイルの展開では正しく回答されます。
実際WindowsのZIP圧縮で圧縮しなおしたところ、問題ないようでした。

担当者に聞いたところ、Javaで標準で使用してる方式でZIP圧縮している
とのことでした。
どのようにしたら、正常な件数が取得できるでしょうか?
Javaのライブラリで圧縮したものはZLIBのやり方では読み込めないのでしょうか?


DEKO  2012-05-18 12:10:56  No: 42216

URL 先の See Also にある 
"続・ZIP で圧縮 / 解凍したい (Delphi 2010 以降)" を参考に
"TurboPower Abbrevia" を使ってみてはいかがでしょうか?

TurboPower Abbrevia は Delphi 6 以降で使えます。
http://ht-deko.minim.ne.jp/ft1112.html#111208

# 2005 / 2006 用のパッケージはありませんが、
# 2005 / 2006 用のパッケージを作るのは難しくないと思います。


  2012-05-22 03:31:35  No: 42217

返信が遅くなりました、サンプルを元に試して、
何とかほしいデータを取得することができました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加