delphi 压缩流问题

jixiaoqiang 2008-01-30 05:13:57
把Memo1中的内容压缩后,在memo2中显示出来压缩的结果,为什么是空的?
主要就是得到的结果流的size为什么一直是0???
procedure TForm1.Button1Click(Sender: TObject);
var
des_cStream:TMemoryStream;
cStream:TCompressionStream;
sourStream:TMemoryStream;
begin
des_cStream:=TMemoryStream.Create;
cStream:=TCompressionStream.Create(clMax,des_cStream);
sourStream:=TMemoryStream.Create;
Memo1.Lines.SaveToStream(sourStream);
sourStream.SaveToStream(cStream);
Memo2.Lines.LoadFromStream(des_cStream);
end;
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyyeii 2008-07-17
  • 打赏
  • 举报
回复
压缩数据有问题,使解压缩的数据缺少。
cyyeii 2008-07-17
  • 打赏
  • 举报
回复
刚好需要这方面的资料,谢谢,做个标记。
僵哥 2008-01-30
  • 打赏
  • 举报
回复
uses
zlib;

//压缩测试
procedure TForm2.Button1Click(Sender: TObject);
var
des_cStream:TMemoryStream;
cStream:TCompressionStream;
sourStream:TMemoryStream;
begin
des_cStream:=TMemoryStream.Create;
cStream:=TCompressionStream.Create(clMax,des_cStream);
sourStream:=TMemoryStream.Create;
Memo1.Lines.SaveToStream(sourStream);
sourStream.SaveToStream(cStream);
cStream.Free;
sourStream.Free;
Memo2.Lines.LoadFromStream(des_cStream);
des_cStream.SaveToFile('c:\aa.bin');
des_cStream.Free;
end;

//解压缩测试
procedure TForm2.Button2Click(Sender: TObject);
var
des_cStream:TMemoryStream;
cStream:TDeCompressionStream;
sourStream:TMemoryStream;
begin
if Not FileExists('c:\aa.bin') then
Button1.Click;
if Not FileExists('c:\aa.bin') then Exit;
des_cStream:=TMemoryStream.Create;

sourStream:=TMemoryStream.Create;
des_cStream.LoadFromFile('c:\aa.bin');
des_cStream.Position := 0;
cStream:=TDeCompressionStream.Create(des_cStream);
sourStream.Size := des_cStream.Size;
cStream.Read(sourStream.Memory^,des_cStream.Size);
cStream.Free;
des_cStream.Free;
sourStream.Position := 0;
Memo2.Lines.LoadFromStream(sourStream);
sourStream.SaveToFile('c:\bb.bin');
sourStream.Free;
end;
jixiaoqiang 2008-01-30
  • 打赏
  • 举报
回复
我写入文件也是什么都没有!!!!
jixiaoqiang 2008-01-30
  • 打赏
  • 举报
回复
怎么看不到内容呀
僵哥 2008-01-30
  • 打赏
  • 举报
回复
memo使用的是字符串,字符串就是以NULL(#0)为结束符,而压缩数据是二进制,并不排除首字节就是#0,或者不可打印字符。
jixiaoqiang 2008-01-30
  • 打赏
  • 举报
回复
请use Zlib单元

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧