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命令详解 |举报|字 ...
随机推荐
- Crane (POJ 2991)
//线段树 延迟标签 // #include <bits/stdc++.h> using namespace std; const int maxn=1e4+5; double x[max ...
- pytho命名规范
1变量小写 多个单词 下划线 2 常量 全大写 3
- 安装mitmproxy
https://www.jianshu.com/p/1dd40826113b 先连接到同一个局域网,再访问官网下载描述文件
- 计算机网络ip地址
ip地址组成 IP地址 = 网络地址 + 主机地址(又称:主机号和网络号组成) 我们通常将网络也可以分为很多的子网络,每个子网络有自己的网络地址,每个子网络由很多的计算机组成(当然也可以包含另外一个子 ...
- jquery.validate 远程验证remote使用详解
目的: 试了一下远程验证,试了好几次,得出小结,可以记录下,提醒以防绕路. ----------------直接贴图,省事明了---------------- 1.引用js 2.demo的html & ...
- python基础之Day22
1.组合 什么是? 一个类的对象具备某一个属性,该属性值属于另一个类的对象,这样就可以引用 为何用: 解决类与类之间代码冗余问题 如何用? 2.菱形继承 单继承:一个个往父类上查找 菱形:一个子类继承 ...
- 堆&栈的理解(转)
(摘自:http://www.cnblogs.com/likwo/archive/2010/12/20/1911026.html) C++中堆和栈的理解 内存分配方面: 堆: 操作系统有一个记录空闲内 ...
- vue项目运行
共分为以下六步: 1.安装node.js2.安装cnpm3.安装vue-cli脚手架构建工具4.用vue-cli构建项目5.安装项目所需的依赖6.运行项目 第1步:从node.js官网下载node.j ...
- 【机器学习】异常检测算法(I)
在给定的数据集,我们假设数据是正常的 ,现在需要知道新给的数据Xtest中不属于该组数据的几率p(X). 异常检测主要用来识别欺骗,例如通过之前的数据来识别新一次的数据是否存在异常,比如根据一个用户以 ...
- Kmeanns图片压缩
from sklearn.datasets import load_sample_image#先导入数据包 china = load_sample_image("china.jpg" ...