2010-08-04 14 views
0

我有一个D程序与探戈,我想解压缩一个gzipped字符串。不幸的是,我没有A流,但压缩的数据存储在char[]。如何使用探戈tango.io.compress.ZlibStream解压缩它?我需要另一个char[]与未压缩的数据。如何将char []对象读入tango.io.compress.ZlibStream?

我一直在尝试这个小时了。我对探戈不是很熟悉。

谢谢

编辑:我的代码看起来是这样的:

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 

回答

0

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

当我用base64解码字符串,并在所得到的ubyte数组上使用gzip时,它实现了诀窍!

对不起。