关于 流的转换

1、所谓“流”是指一块内存或数据;不必关心流的数据具体是什么,只要知道流的大小和位置就行了。

对于流的操作最重要的是读和写,对于这样的控件最重要的方法是readfromstream和savetostream;

2、内存流 压缩流 解压流 字符流 encodestream decodestream

 

内存流主要完成读入硬盘数据和写入硬盘数据

mstream:TMemoryStream;

 

mstream:= TMemoryStream.create;

 

mstream.loadfromfile('c://temp//test.txt/');

或 Tstrings 的 savetostream(mstream);将数据写入流

 

压缩流和解压流 对数据进行压缩和解压,他们需要借用内存流来操作,自己没有可以存储数据的地方。

var

m1,m2:Tmemorystream;

comstream : TCompressionStream; 

sstream : TStringStream; 

 

begin

 

m1 := Tmemorystream.create;m2 := Tmemorystream.create;

 

m1.loadfromfile('c://temp//test.txt/');

m2.setsize(num);

comstream := TCompressionStream.create(cldefault,m2);//第一个参数是压缩比例,第二个参数是接收的内存流

m1.savetostream(comstream);传入要压缩的流  或者用comstream.write(buffer,count)count是字节数,buffer是为被压缩的缓冲区;这样直接将数据压缩到接收内存流中,不再通过接收内存流了。

如果失败 可以用 FreeAndNil(comstream)来释放掉。

 m2.savetofile('c://temp//test.zipx/') //可将压缩文件保存

 

comstream.position := 0;

sstream := TStringstream.create('');

Encodestream(comstream,sstream);//进行加密处理;

result := sstream.datastring;

 

别忘记释放流文件

sstream.free;

comstream.free;

m1.free;

m2.free;

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值