delphi压缩与解压_不需要特别的控件
unit unzip;
interface
uses
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);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Zlib;
//压缩函数
procedure Zip(var fs: TMemoryStream);
var
cs: TCompressionStream;
ms: TMemoryStream;
num: Integer;
begin
if not(Assigned(fs) and (fs.Size>)) 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, );
finally
ms.Free;
end;
end;
//解压函数
procedure UnZip2(var fs: Tmemorystream);
var
ds: TDecompressionStream;
ms: TMemoryStream;
num: Integer;
begin
if not(Assigned(fs) and (fs.Size>)) then Exit;
fs.Position := ;
fs.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, );
finally
ds.Free;
ms.Free;
end;
end;
//压缩测试
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.LoadFromFile('D:\delphi\szcb.mdb');
Zip(ms);
ms.SaveToFile('D:\delphi\szcb.zip');
end;
//解压测试
procedure TForm1.Button2Click(Sender: TObject);
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.LoadFromFile('D:\delphi\szcb.zip');
UnZip2(ms);
ms.SaveToFile('D:\delphi\szcb2.mdb');
end;
end.
delphi压缩与解压_不需要特别的控件的更多相关文章
- XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
- golang tar gzip 压缩,解压(含目录文件)
tar是用于文件归档,gzip用于压缩.仅仅用tar的话,达不到压缩的目的.我们常见的tar.gz就是用gzip压缩生成的tar归档文件. go实现tar压缩与解压与zip类似,区别在于tar需要使用 ...
- golang zip 压缩,解压(含目录文件)
每天学习一点go src. 今天学习了zip包的简单使用,实现了含目录的压缩与解压. 写了两个方法,实现了压缩.解压. package ziptest import ( "archive/z ...
- Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压
zip格式 压缩: zip -r [目标文件名].zip [原文件/目录名] 解压: unzip [原文件名].zip 注:-r参数代表递归 tar格式(该格式仅仅打包,不压缩) 打包:tar -cv ...
- Linux压缩与解压常用命令
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- Asp.net中文件的压缩与解压
这里笔者为大家介绍在asp.net中使用文件的压缩与解压.在asp.net中使用压缩给大家带来的好处是显而易见的,首先是减小了服务器端文件存储的空间,其次下载时候下载的是压缩文件想必也会有效果吧,特别 ...
- Java实现文件压缩与解压
Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...
- Zip 压缩、解压技术在 HTML5 浏览器中的应用
JSZip 是一款可以创建.读取.修改 .zip 文件的 javaScript 工具.在 web 应用中,免不了需要从 web 服务器中获取资源,如果可以将所有的资源都合并到一个 .zip 文件中,这 ...
- linux下压缩与解压(zip、unzip、tar)详解
linux下压缩与解压(zip.unzip.tar)详解 2012-05-09 13:58:39| 分类: linux | 标签:linux zip unzip tar linux命令详解 |举报|字 ...
随机推荐
- The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored(E F G H I)
http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=392 E:Sequence in the Pocket 思路:从 ...
- 18. 4Sum (JAVA)
Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...
- wpf 寻找TreeView的子元素,并对其进行操作
//itemsControl 开始为指定的TreeView控件 item为TreeView子元素 private void PareItems(ItemsControl itemsControl, ...
- web前端技术体系大全
一.前端技术框架 1.Vue.js 官网:https://cn.vuejs.org/ Vue CLI:https://cli.vuejs.org/ 菜鸟教程:http://www.runoob.com ...
- Centos 系统swap虚拟内存添加与删除配置
SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...
- 将EditPad Lite 加入鼠标右键
> 开始 > regedit 如图新建shell及command
- Posche Piwis 3 Original and Clone – What’s the difference
Category : Car Diagnostic Tools What’s the difference between Porsche Tester Piwis III original and ...
- LoadRunner如何监控Linux下的系统资源
1. 安装rsh,rsh-server [root@localhost /]# yum install rsh [root@localhost /]# yum install rsh-server 或 ...
- linux下创建密钥
1.生成rsa文件 : a)ssh-keygen -t rsa,然后会提示在/root/.ssh/id_rsa这个路径下存放密钥文件 b)进入到/root/.ssh目录下,将id_rsa.pub更改为 ...
- 教你如何用ps制作紫色光斑效果
1.新建800x800画布 2.设置前景色和背景色分别为#b38adb ,#212121;执行"滤镜"-"渲染"-"云彩"操作 3.执行&q ...