読者です 読者をやめる 読者になる 読者になる

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-----