如何将char []对象读入tango.io.compress.ZlibStream?

时间:2010-08-04 03:40:18

标签: stream gzip d zlib tango

我有一个Tango的D程序,我正在尝试解压缩一个gzip压缩字符串。不幸的是,我没有A流,但压缩数据存储在char[]中。如何使用探戈tango.io.compress.ZlibStream解压缩它?我需要另一个带有未压缩数据的char[]

我已经尝试了几个小时了。我对探戈不太熟悉。

谢谢

编辑:我的代码如下所示:

char[] rawData; // decoded data goes here
Array array = new Array(e.value[4..(e.value.length-3)]); // e.value is a char[]
// array slice, castet to char[] is "H4sIAAAAAAAAA2NkYGBgHMWDBgMAjw2X0pABAAA="
// array.readable returns 40 (matches the above string)
// decoded string is expected to be 33 repeatitions of "AQAAAAEAAAABAAAA"
// followed by "AQAAAA=="
auto reader = new ZlibInput(array);
ubyte[1024] buffer;
reader.read(buffer); // throws Z_DATA_ERROR

1 个答案:

答案 0 :(得分:0)

好吧,没关系。看来,设计这种文件格式的人在用base64编码之前压缩了数据。我试图解压缩仍然是base64编码的数据。

当我使用base64解码字符串并在生成的ubyte数组上使用gzip时,它就可以了!

抱歉。