Delphi中压缩流和解压流的应用

软件开发者不免都要遇到压缩数据的问题!经常使用Delphi的朋友都知道,它为我们提供了两个流类(TCompressionStream和TDecompressionStream)来完成数据的压缩和解压缩,但美中不足的是,该流在Delphi 的帮助中没有详细的说明,使得它们在使用起来有一定得困难。其实在Delphi系统中提供了这两个类的源代码和库。保存在Delphi 光盘的\Info\Extras\Zlib\ Src和\Info\Extras\Zlib\Obj目录中(其中OBJ目录中保存的是库,Src目录中保存的是源代码,感兴趣的朋友可以看看)。本人在使用的过程中,对它们有了一定的了解。

一、 类的说明

1、 基类 TCustomZlibStream:类TCustomZlibStream 是类TCompressionStream和TDecompressionStream 类的基类,它主要有一个属性: OnProgress,在类进行压缩或解压缩的过程中会发生这个的事件 ,它的定义如下:

Procedure OnProgress (Sender: TObject); dynamic;

2、 压缩类TCompressionStream:类TCompressionStream除了继承了基类的 OnProgress 属性外,又增加了一个属性:CompressionRate,它的定义如下:

Property CompressionRate: Single read GetCompressionRate;通过这个属性,可以得到压缩比。

它的几个重要的方法定义如下:

Constructor TCompressionStream.Create (CompressionLevel: TCompressionLevel; Dest: TStream);

其中:TcompressionLevel(压缩类型),它由如下几个定义:

①、 clNone :不进行数据压缩;

②、 clFastest:进行快速压缩,牺牲压缩效率;

③、 clDefault:进行正常压缩;

④、 clMax: 进行最大化压缩,牺牲速度;

Dest:目的流,用于存放压缩过的数据。

时间: 2024-10-24 19:59:23

Delphi中压缩流和解压流的应用的相关文章

总结Linux中压缩文件和解压文件的用法

总结Linux中压缩文件和解压文件的用法,压缩文件和解压文件是在Linux中最常见的一种操作,熟悉和掌握这部分的技能也是必须的,一般我们常用的命令有:tar.unzip.bunzip2等等,如何正确的使用也是需要掌握的一个知识重点,下面我们分两个部分来对压缩文件和解压文件进行说明. a.解压小全 tar -I或者bunzip2命令都可以解压.bz2文件tar xvfj example.tar.bz2tar xvfz example.tar.gztar xvfz example.tgztar xv

Delphi压缩流和解压流的应用

软件开发者不免都要遇到压缩数据的问题!经常使用Delphi的朋友都知道,它为我们提供了两个流类(TCompressionStream和TDecompressionStream)来完成数据的压缩和解压缩,但美中不足的是,该流在Delphi 的帮助中没有详细的说明,使得它们在使用起来有一定得困难.其实在Delphi系统中提供了这两个类的源代码和库.保存在Delphi 光盘的InfoExtraslib Src和InfoExtraslibObj目录中(其中OBJ目录中保存的是库,Src目录中保存的是源代

linux中如何创建和解压tar.xz文件

根据维基百科的解释, xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式.和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件.相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpioUnix程序创建的归档.xz 在GNU coreutils(版本 7.1 或更新)中被使用.xz 作为压缩软件包被收录在 Fedora (自Fedora 12起), Arch Linux, FreeBSD. Slackware Linux.CRUX

Android中实现下载和解压zip文件功能代码分享_Android

本文提供了2段Android代码,实现了从Android客户端下载ZIP文件并且实现ZIP文件的解压功能,非常实用,有需要的Android开发者可以尝试一下. 下载: DownLoaderTask.java 复制代码 代码如下: package com.johnny.testzipanddownload; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; im

Android中实现下载和解压zip文件功能代码分享

本文提供了2段Android代码,实现了从Android客户端下载ZIP文件并且实现ZIP文件的解压功能,非常实用,有需要的Android开发者可以尝试一下. 下载: DownLoaderTask.java 复制代码 代码如下: package com.johnny.testzipanddownload; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; im

批处理+Rar实现批量独立压缩目录和解压目录_DOS/BAT

c:\r\a c:\r\b cd c:\r 独立压缩各目录 复制代码 代码如下: for /d %a in (*) do C:\Progra~1\WINRAR\RAR.EXE a -k -r -s -m1 %a.rar %a 结果为: c:\r\a.rar c:\r\b.rar 独立解压各目录 复制代码 代码如下: for %a in (*.rar) do C:\Progra~1\WINRAR\RAR.EXE x -y %a 结果为: a.rar 到 a 目录下 b.rar 到 b 目录下

Linux压缩和解压汇总

各种后缀的压缩包压缩方法和解压方法 压缩包 压缩 解压 .tar.gz和.tgz tar -czf jpg.tar.gz *.jpg tar -xzvf filename -C path .tar.bz2 tar -cjf jpg.tar.bz2 *.jpg tar -xjvf filename -C path .tar.Z tar -cZf jpg.tar.Z *.jpg tar -xZvf filename -C path .tar tar -cvf jpg.tar *.jpg tar -x

代码-从服务器上下载的压缩文件,通过流的方式怎么读取文件中的内容。

问题描述 从服务器上下载的压缩文件,通过流的方式怎么读取文件中的内容. 如何用java代码实现压缩文件的读取? 例如从银行服务器上下载对账文件后,为了不在本地保存文件. 压缩文件中的文件格式是俩个文本文件,怎么用流的方式读取到压缩文件中的文件内容. 解决方案 ZipEntry http://daoshud1.iteye.com/blog/2012362 解决方案二: http://www.cnblogs.com/kgdxpr/archive/2013/05/20/3088254.html 解决方

在Linux系统中使用tar命令压缩和解压文件的教程

  linux中的tar命令 tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令. 其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩. 在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子. 使用tar命令 tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件. tar命令具有两个压缩格式,gzip和bzip,