多语言展示
当前在线:385今日阅读:181今日分享:30

Delphi利用流压缩解压缩文件实例

Delphi利用流压缩解压缩文件实例
工具/原料
1

Delphi7

2

Windows电脑

方法/步骤
1

打开Delphi7集成开发环境,在默认工程的Form1窗体上放两个Button按钮分别设置Caption属性为:压缩和解压缩

2

在Unit1源代码文件的implementation区添加Zlib单元引用,这个单元是压缩流解压流单元,双击压缩按钮,进入事件方法,并写如下代码:implementation{$R *.dfm}uses Zlib;procedure TForm1.Button1Click(Sender: TObject);var  cps: TCompressionStream;  files,saves: TMemoryStream;  nums: Integer;begin  files := TMemoryStream.Create;  files.LoadFromFile('c:\x.txt');   //载入压缩文件到流  nums := files.Size;  saves := TMemoryStream.Create;  saves.Write(nums, SizeOf(nums));   //创建要接收文件的流  cps := TCompressionStream.Create(clMax, saves); //创建压缩流,传入接收文件的流  files.SaveToStream(cps);            //传入要压缩文件的流  cps.Free;  saves.SaveToFile('c:\zipx');      //接收文件后保存  saves.Free;  files.Free;  ShowMessage('压缩成功');end;解释一下:这里用了MemoryStream,用来载入和保存要压缩的文件和压缩后的文件。TCompressionStream的压缩比参数有  clNone    无压缩  clFastest 快速  clDefault 默认  clMax     最大比例

3

F9运行程序,点击压缩按钮,会弹出‘压缩成功’对话框。注意c:\x.txt此文件一定要事先存在。查看c盘根目录多了zipx文件。

4

关闭程序,双击解压缩按钮进入事件方法,写入代码如下:procedure TForm1.Button2Click(Sender: TObject);var  dps: TDecompressionStream;  files,saves: TMemoryStream;  nums: Integer;begin  files := TMemoryStream.Create;  files.LoadFromFile('c:\zipx');    //载入要解压的文件  files.Position := 0;  files.ReadBuffer(nums,SizeOf(nums));   //读取文件大小  saves := TMemoryStream.Create;  saves.SetSize(nums);                  //设置接收文件流大小  dps := TDecompressionStream.Create(files);     //把文件出入解压流  dps.Read(saves.Memory^, nums);               //解压好的放入接收文件流  saves.SaveToFile('c:\x2.txt');            //保存文件  dps.Free;  saves.Free;  files.Free;  ShowMessage('解压成功');end;

5

F9运行程序,点击压缩按钮,会弹出‘解压缩成功’对话框。注意zipx此文件一定要是刚刚压缩的文件。查看c盘根目录多了x2.txt文件。

6

对比x.txt和x2.txt内容完全一样,压缩解压缩成功。

推荐信息