線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1698
推到 Plurk!
推到 Facebook!

Stream 解壓縮至 Stream 如何實作(標準 Zip 格式)?

缺席
gavinhu
一般會員


發表:3
回覆:4
積分:1
註冊:2003-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-09 15:51:53 IP:61.59.xxx.xxx 未訂閱
請問各位先進, 我目前是使用 TZipMaster 來作 Stream 的解壓縮 (壓縮字串是用標準的 Zip 格式),我是使用以下的程式解壓縮 procedure DeCompress(sInput: string; iDataSize:Integer); var   Data, Buffer: array of Char;   tmp: TMemoryStream;   Stream: TZipstream;   i,iSize: Integer;   Str: string; begin   tmp := TMemoryStream.Create;      iSize := length(sInput); // 壓縮字串長度   GetMem(Buffer,iSize);   GetMem(Data,iDataSize); // iDataSize 是解壓縮的字串長度   for i:=0 to iSize-1 do Buffer[i] := sInput[i+1];       // 解壓縮   tmp.WriteBuffer(Buffer,iSize);   tmp.Seek(0,soFromBeginning);   ZipMaster1.ExtractStreamToStream(tmp,iDataSize);      FreeMem(Buffer);   FreeMem(Data);   tmp.free; end; 資料來源是由 Java 壓縮字串後透過網路從 TClientSocket.OnRead 中的 Socket.ReceiveText 所取得, 我發覺使用此方式總是無法成功地解壓縮,所以想請教大家是否有可行的 方式解決此問題! 謝謝大家的幫忙! 發表人 -
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-09 21:27:48 IP:218.1.xxx.xxx 未訂閱
1.作为解压函数,你的函数没有输出,是否在ZipMaster1里?; 2.没有必要使用Buffer,直接写tmp.Write(sInput[1],length(sInput)); 3.ZipMaster1.ExtractStreamToStream函数的第一参数是输入还是输出?     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
gavinhu
一般會員


發表:3
回覆:4
積分:1
註冊:2003-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-10 09:03:27 IP:61.59.xxx.xxx 未訂閱
引言: 1.作为解压函数,你的函数没有输出,是否在ZipMaster1里?; 2.没有必要使用Buffer,直接写tmp.Write(sInput[1],length(sInput)); 3.ZipMaster1.ExtractStreamToStream函数的第一参数是输入还是输出? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
謝謝您在幫我解決問題, 我的函數輸出是在 ZipMaster1.ZipStream 中! ZipMaster.ExtractStreamToStream 的第一個參數是要解壓縮的資料來源, 所以第一個參數是輸入參數! 我之所以採用 TZipMaster 來作解壓縮物件主要是因為它壓縮的格式是標準的 Zip 格式,而我所接收的資料正是由 Java 所壓縮出來標準的 Zip 格式資料, 再加上 TZipMaster 又支援 Stream 解壓縮,所以才採用此元件! 雖然我用 TZipMaster 到現在都無法對 Stream 解壓縮成功! 不過我回頭又試了 ZLibEx 的解壓縮,我竟然發現它能夠將 Java 所壓縮出來 的 Stream 解壓縮,因為 ZLibEx 並沒有說明它的壓縮格式是標準的 Zip 格式 ,所以一開始並沒有使用它,如今被我試出來了,真是謝天謝地!
系統時間:2024-06-29 17:47:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!