--在线等--使用ZLIB库函数编写基于内存的压缩与解压缩程序(GZ格式)

duoluoshengming 2012-04-16 03:45:44
基于内存:
待压缩数据来自内存(数组等);
压缩后数据在内存中保存(不是文件)。

GZ格式:
ZLIB格式用compress(...)与uncompress(...)函数就可以实现基于内存的输入输出,
GZ格式(带有GZIP格式头、尾)数据怎么基于内存进行处理呢?

通过研究发现,可以用流实现基于内存的输入输出。

基于流的实现:
压缩:deflateInit2(...)、deflate(...)、deflateEnd(...)
解压缩:inflateInit2(...)、inflate(...)、inflateEnd(...)

研究了好几天,还是弄不懂这几个函数怎么使用,主要是格式头的处理不懂,研究了半天源代码(ZLIB-1.2.5.1)总是卡壳。
对于GZIP格式我查了相关资料:
+---+---+--+---+--+--+--+--+---+--+==//===+==//==+--+--+--+--+--+--+--+--+
|ID1|ID2|CM|FLG| MTIME |XFL|OS| extra | data | CRC32 | ISIZE |
+---+---+--+---+--+--+--+--+---+--+==//===+==//==+--+--+--+--+--+--+--+--+

但是自己编写代码总是出错,希望大家能够帮帮我!

在线等!!!
...全文
349 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
duoluoshengming 2012-04-16
  • 打赏
  • 举报
回复
另外,还有个疑问:
Flash AS3.0中的ByteArray.deflate()和ByteArray,inflate()使用的算法与ZLIB中的deflate(...)和inflate(...)相同吗?
我用AS3和ZLIB库压缩所得结果怎么不一样呢?

我想做的程序是一个AS3版本和一个C/C++版本,要求两者间能够相互兼容(比如AS3版本压缩所得数据能够用C/C++版本解压)。

望知情者相告,感激不尽!
duoluoshengming 2012-04-16
  • 打赏
  • 举报
回复
是管理员删除了啊,怪不得呢。

继续等啊!
duoluoshengming 2012-04-16
  • 打赏
  • 举报
回复
明明提示有人回复我了啊,怎么我看不到回复啊。
我用IE8看不到网站内容,只能看到TOP那一栏,这是用的谷歌浏览器,难道不能看回复吗?

回复我的朋友能加下QQ吗?

我的QQ:173708194

谢谢了!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧