2010-08-04 3 views
0

나는 Tango와 함께 D 프로그램을 가지고 있으며 gzipped 문자열의 압축을 풀려고합니다. 불행히도 스트림이 없지만 압축 된 데이터는 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을 사용하면 트릭을 만들었습니다!

죄송합니다.

관련 문제