Delphi7
Windows电脑
打开Delphi7集成开发环境,在默认工程的Form1窗体上放两个Button按钮分别设置Caption属性为:压缩和解压缩
在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 最大比例
F9运行程序,点击压缩按钮,会弹出‘压缩成功’对话框。注意c:\x.txt此文件一定要事先存在。查看c盘根目录多了zipx文件。
关闭程序,双击解压缩按钮进入事件方法,写入代码如下: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;
F9运行程序,点击压缩按钮,会弹出‘解压缩成功’对话框。注意zipx此文件一定要是刚刚压缩的文件。查看c盘根目录多了x2.txt文件。
对比x.txt和x2.txt内容完全一样,压缩解压缩成功。