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命令详解 |举报|字 ... 
随机推荐
- .Net圈子里的一些看法
			金三银四招聘季,不一定一定要跳巢,但是出去看看行情还是有必要的,所以就有这篇随笔. 首先,这里说的.Net圈子是只两个方面 第一,技术人才,属于人的圈子 第二,技术本身,技术的圈子,也就是技术所涵盖的 ... 
- Zookeeper到底是干嘛的
			在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, n ... 
- 创建Jenkins构建触发器,代码提交至gitLab即自动触发构建
			下载所需插件,系统设置-->插件管理,搜索以下两个插件,选择安装 登录gitLab,生成一个Personal Access Tokens 进入Jenkins,添加api token,路径:首页- ... 
- Linux查看机器负载
			负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. Linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ... 
- CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
			我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ... 
- [Git] 拉开发分支的代码报错
			Git拉开发分支的代码报错: fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed ... 
- 什么是JavaScript原型
			JS 原型 转载自[EC前端 - JavaScript原型] 原型是JavaScript最重要的概念.同时也是初级开发者最忌惮的内容,原因在于网上很少有关于它的合理描述. 但事实上,原型很简单,你可以 ... 
- sqlserver 并行度
			转载地址:http://www.cnblogs.com/zhijianliutang/p/4148540.html 
- C#的split分割的举例
			下面列举了split分割字符串的几种示例: string te = ";"; string re = "a;b"; string se = "a&qu ... 
- 常用API String
			Java的API以及Object类 Java的API Java的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JD ... 
