ZIPファイルを読む(ZIPファイルを解答したい).(C言語)
まだバイナリを読んでるだけでdeflateは実装していない.早くやらねば.(2012/9/15追記:実装した!)ほぼ決め打ちなのでエラー処理は全く書いてない.
メモリーも開放してない.
2012/9/15追記:fseek使ってるけど一応解凍できるようになった.無圧縮と固定ハフマンのdeflateだけしか対応してないけど.
出力結果例(niha niha niha niwatorigairuと書かれた1.txt(圧縮)とhelloと書かれた2.txt(非圧縮)が入ったZIPファイル)
エントリ数:2 -ファイル名 :1.txt ファイルサイズ :29 圧縮ファイルサイズ:21 圧縮形式 :Deflate圧縮 -ファイル名 :2.txt ファイルサイズ :6 圧縮ファイルサイズ:6 圧縮形式 :非圧縮 [INFO1]:-----1.txt----- [INFO2]:final:1->last block [INFO2]:type:1->fixed huffman [INFO1]:データ:0x06e(n) [INFO2]:data:0x09e->decode_data:0x6e(n) [INFO1]:データ:0x069(i) [INFO2]:data:0x099->decode_data:0x69(i) [INFO1]:データ:0x068(h) [INFO2]:data:0x098->decode_data:0x68(h) [INFO1]:データ:0x061(a) [INFO2]:data:0x091->decode_data:0x61(a) [INFO1]:データ:0x020( ) [INFO2]:data:0x050->decode_data:0x20( ) [INFO1]:データ:0x06e(n) [INFO2]:data:0x09e->decode_data:0x6e(n) [INFO1]:長さ:11 [INFO2]:data:0x009->decode_data:0x109 [INFO2]: offset:11 [INFO2]: extra_bits:1 [INFO2]: extra_bits_data:0 [INFO2]: ->length:11 [INFO1]:距離:5 [INFO2]:data:0x004 [INFO2]: offset:5 [INFO2]: extra_bits:1 [INFO2]: extra_bits_data:0 [INFO2]: ->dist:5 [INFO2]:char:i(105) [INFO2]:char:h(104) [INFO2]:char:a(97) [INFO2]:char: (32) [INFO2]:char:n(110) [INFO2]:char:i(105) [INFO2]:char:h(104) [INFO2]:char:a(97) [INFO2]:char: (32) [INFO2]:char:n(110) [INFO2]:char:i(105) [INFO1]:データ:0x077(w) [INFO2]:data:0x0a7->decode_data:0x77(w) [INFO1]:データ:0x061(a) [INFO2]:data:0x091->decode_data:0x61(a) [INFO1]:データ:0x074(t) [INFO2]:data:0x0a4->decode_data:0x74(t) [INFO1]:データ:0x06f(o) [INFO2]:data:0x09f->decode_data:0x6f(o) [INFO1]:データ:0x072(r) [INFO2]:data:0x0a2->decode_data:0x72(r) [INFO1]:データ:0x069(i) [INFO2]:data:0x099->decode_data:0x69(i) [INFO1]:データ:0x067(g) [INFO2]:data:0x097->decode_data:0x67(g) [INFO1]:データ:0x061(a) [INFO2]:data:0x091->decode_data:0x61(a) [INFO1]:データ:0x069(i) [INFO2]:data:0x099->decode_data:0x69(i) [INFO1]:データ:0x072(r) [INFO2]:data:0x0a2->decode_data:0x72(r) [INFO1]:データ:0x075(u) [INFO2]:data:0x0a5->decode_data:0x75(u) [INFO1]:データ:0x00a( ) [INFO2]:data:0x03a->decode_data:0x0a( ) [INFO1]:データ:0x100(END) [INFO2]:data:0x000->decode_data:0x100(END) [INFO1]:-----2.txt-----