首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windev ():使用哪种压缩格式

Windev ():使用哪种压缩格式
EN

Stack Overflow用户
提问于 2014-02-06 10:16:14
回答 2查看 514关注 0票数 1

有谁知道WinDev函数Compress()使用哪种压缩方法,以及如何在php中解压缩结果?

WinDev的API只提供“二进制”压缩,而没有提供更多的细节。http://doc.windev.com/en-US/?3024012&product=WD&productversion=XXA150

在php中,我可以使用unpack(),但必须说明哪种格式。在不知情的情况下,这是在干草堆中搜寻一根针。

也许有谁,已经做过这件事了,可以帮助我。

样本: zip-文件,包含压缩()-Function和普通内容的示例结果,以供比较

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 16:35:42

PCSOFT使用他们的WDZ格式的大多数东西,它是不标准的,所以你将无法打开它与通常的工具。我听说他们使用了一些常用的库,比如zlib,但是对它做了一些小改动,所以您可能只能使用他们的工具WDZIP.EXE来处理这个问题。

您应该查看其他函数,如zipCreate(),用于创建归档文件和使用一些标准格式:http://doc.windev.com/en-US/?3082007

希望这会有所帮助:)

票数 1
EN

Stack Overflow用户

发布于 2021-04-23 16:29:34

这个问题已经有7年历史了,但是如果有人需要读取使用该函数压缩的数据,我也不得不将其反转:

  • 它以01 01 00 00 00 XX开头,其中XX是:
    • 用于“无压缩”的00
    • "LZW“的04

  • 然后,在一个小的endian int32中有压缩数据的长度。
    • 如果存在压缩,则后面是未压缩缓冲区的长度(数据长度+ 4)。

  • 然后有一个缓冲区(编码与否),它包含:
    • 小终端int32中未压缩数据的长度。
    • 实际数据。

LZW压缩使用16位码,而不是通常的12位,其清空码为零,这意味着每一段文字代码都会增加。

我拿了Go的compress/lzw包,并对它做了一些调整: 16位代码,零清晰代码,每一段文字代码都会减少。到目前为止,它正确地解码了所有的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21599884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档