关于 Delphi 中流的使用(8) 压缩与解压缩的函数
来源:互联网 发布:淘宝店铺降权原因 编辑:程序博客网 时间:2024/05/29 11:57
unit Unit1;
interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 =class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var Form1: TForm1;
implementation
{$R *.dfm}
uses Zlib;/
/压缩函数
procedure Zip(var fs: TMemoryStream);
var cs: TCompressionStream; ms: TMemoryStream; num: Integer;
begin
ifnot(Assigned(fs)and (fs.Size>0))then Exit;
num := fs.Size;
ms := TMemoryStream.Create;
cs := TCompressionStream.Create(clMax, ms);
try fs.SaveToStream(cs); cs.Free;
//ms.Position := 0;
fs.Clear;
fs.WriteBuffer(num, sizeof(num));
fs.CopyFrom(ms,0);
finally ms.Free;
end;
end;
//解压函数
procedure UnZip(var fs: Tmemorystream);
var ds: TDecompressionStream; ms: TMemoryStream; num: Integer;
begin
ifnot(Assigned(fs)and (fs.Size>0))then Exit;
fs.Position :=0; f
s.ReadBuffer(num,sizeof(num));
ms := TMemoryStream.Create;
ds := TDecompressionStream.Create(fs);
try ms.SetSize(num);
ds.Read(ms.Memory^, num);
//ms.Position := 0;
fs.Clear;
fs.CopyFrom(ms,0);
finally ds.Free;
ms.Free;
end;
end;
//压缩测试
procedure TForm1.Button1Click(Sender: TObject);
var ms: TMemoryStream;
begin ms := TMemoryStream.Create;
ms.LoadFromFile('c:\temp\test.txt');
Zip(ms);
ms.SaveToFile('c:\temp\test.zipx');
end;
//解压测试
procedure TForm1.Button2Click(Sender: TObject);
var ms: TMemoryStream;
begin ms := TMemoryStream.Create;
ms.LoadFromFile('c:\temp\test.zipx');
UnZip(ms);
ms.SaveToFile('c:\temp\test2.txt');
end;
end.
- 关于Delphi中流的使用-压缩与解压缩的函数
- 关于 Delphi 中流的使用(8) 压缩与解压缩的函数
- 关于 Delphi 中流的使用(8) 压缩与解压缩的函数
- 关于 Delphi 中流的使用(8) 压缩与解压缩的函数
- 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)
- 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)
- 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)
- 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)
- 关于 Delphi 中 压缩与解压缩的函数
- 关于 Delphi 中流的使用:分割与合并文件的函数
- 关于 Delphi 中流的使用(9) 分割与合并文件的函数
- 关于 Delphi 中流的使用(9) 分割与合并文件的函数
- 关于 Delphi 中流的使用(9) 分割与合并文件的函数
- Delphi 中流的使用
- Delphi编程中流的使用
- 关于 Delphi 中流的使用(5) 组件序列化
- 关于 Delphi 中流的使用(5) 组件序列化
- php使用ZipArchive函数实现文件的压缩与解压缩
- (备忘)plsql连接oracle 10g rac
- 请求复制工具---tcpcopy
- 关闭jvm错误堆栈信息优化(不输出)
- ~Oracle函数集锦~
- 梯度,散度,旋度的具体物理意义
- 关于 Delphi 中流的使用(8) 压缩与解压缩的函数
- 电话窃听和拦截应用
- 飞鸽传书经典版
- 创建文件夹
- C#中几种画刷的详细使用
- Session模型简介
- EL表达式从request和session中取值
- 2012腾讯校园招聘笔试成都站回忆版
- Wine的完全使用指南