国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

流的壓縮和解壓

2019-11-18 18:24:33
字體:
來源:轉載
供稿:網友
(*//標題:流的壓縮和解壓說明:適用文件壓縮、圖象壓縮等;調用ZLib單元的方法實現設計:Zswang支持:wjhu111@21cn.com日期:2004-03-24//*)
(*//============================================================================設計思路:創建TComPRessionStream、TDecompressionStream實例進行壓縮和解壓============================================================================//*)
uses ZLib;
const cBufferSize = $4096;
function StreamCompression(mInputStream: TStream; mOutputStream: TStream): Integer;var  I: Integer;  vBuffer: array[0..cBufferSize]of Char;begin  Result := -1;  if not (Assigned(mInputStream) and Assigned(mOutputStream)) then Exit;  with TCompressionStream.Create(clMax, mOutputStream) do try    for I := 1 to mInputStream.Size div cBufferSize do begin      mInputStream.Read(vBuffer, cBufferSize);      Write(vBuffer, cBufferSize);    end;    I := mInputStream.Size mod cBufferSize;    if I > 0 then begin      mInputStream.Read(vBuffer, I);      Write(vBuffer, I);    end;  finally    Free;  end;end; { StreamCompression }
function StreamDecompression(mInputStream: TStream; mOutputStream: TStream): Integer;var  vBuffer: array[0..cBufferSize]of Char;  I: Integer;begin  Result := -1;  if not (Assigned(mInputStream) and Assigned(mOutputStream)) then Exit;  with TDecompressionStream.Create(mInputStream) do try    repeat      I := Read(vBuffer, cBufferSize);      mOutputStream.Write(vBuffer, I);    until I = 0;    Result := mOutputStream.Size;  finally    Free;  end;end; { StreamDecompression }
//Exampleprocedure TForm1.Button1Click(Sender: TObject);var  vInputStream: TFileStream;  vOutputStream: TFileStream;begin  vInputStream := TFileStream.Create('c:/temp/temp.exe', fmOpenRead);  vOutputStream := TFileStream.Create('c:/temp/temp.exe.z', fmCreate);  try    StreamCompression(vInputStream, vOutputStream);  finally    vInputStream.Free;    vOutputStream.Free;  end;end;
procedure TForm1.Button2Click(Sender: TObject);var  vInputStream: TFileStream;  vOutputStream: TFileStream;begin  vInputStream := TFileStream.Create('c:/temp/temp.exe.z', fmOpenRead);  vOutputStream := TFileStream.Create('c:/temp/temp~.exe', fmCreate);  try    StreamDecompression(vInputStream, vOutputStream);  finally    vInputStream.Free;    vOutputStream.Free;  end;end;

上一篇:剪貼板的流存儲

下一篇:搜索字符串在流中的位置

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 成都市| 同德县| 光山县| 丰台区| 久治县| 集贤县| 封丘县| 通化县| 青河县| 钟山县| 龙游县| 乌什县| 高青县| 玛纳斯县| 威海市| 成安县| 林芝县| 塘沽区| 尤溪县| 靖西县| 教育| 奈曼旗| 芜湖县| 崇明县| 来安县| 五莲县| 英山县| 沁水县| 海伦市| 固阳县| 阿拉尔市| 吴川市| 大同县| 湄潭县| 石门县| 台中县| 个旧市| 两当县| 南开区| 永宁县| 万山特区|