いつも参考にさせてもらっています。
どうしてもわからないことがあり質問させてもらいます。
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のやり方では読み込めないのでしょうか?
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 用のパッケージを作るのは難しくないと思います。
返信が遅くなりました、サンプルを元に試して、
何とかほしいデータを取得することができました。
ありがとうございました。
ツイート | ![]() |