要求:
1.压缩率尽量要高点。
2.打开压缩文件后能够知道压缩量的大小,能够直接解压文件当中的某个位置并读入相应的缓冲当中,就像读一般的文件一样。
我下载了zlib.lib库看了一下,但好像没有现成的接口(类似于fseek之类的)。是不是自己还要加。

解决方案 »

  1.   

    zlib压缩是按照文件压的,解压也可以文件单独解压,像winzip winrar那样,我前端时间做过,不过只做了压缩模块就结束了,读取没做下去,因为找不到用武之地,这下坚定了我的信心,有时间还要做下去。
      

  2.   

    http://www.codeproject.com/cpp/cgzip.asp
    CGZIP, a C++ wrapper for GZIP methods  http://www.codeproject.com/file/decompresslibrary.asp
    DecompressLibrary - a general library to decompress a zip, gz, or tar.gz file into a memory buffer
      

  3.   

    seek算法可以自己在已有的压缩算法上实现,将文件分割为固定大小的块(比如64K)进行压缩,SEEK的时先算出位置在第几块,然后把这一块的压缩数据解压到缓冲区即可。