关于TDeCompressionStream解压时出现read读不过去的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 墨剑
  • 开始时间 开始时间

墨剑

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TCompressionStream将文件压缩成功,解压的时候用TDeCompressionStream,但读到文件末尾的时候过不去了,如下
var
CryptStream: TDeCompressionStream;
buf: array [0..IBufSize-1] of Byte;
buffer:PChar;
readCount,sjread,buffsize: integer;
Len: Longword;
begin

inStream.Position := 0;
CryptStream := TDeCompressionStream.Create(inStream);
buffsize :=sizeof(buf);
readCount:=0;
CryptStream.Position :=0;
try
repeat
sjRead := CryptStream.Read(buf,buffsize);//read读前面的时候正常,但当到最后一次读到文件末尾的时候过不去了,CPU一直处在九十左右,出现假死现象.
readCount:=readCount+sjRead;
if sjread > 0 then
OutStream.Write(buf, sjRead);
until (sjRead = 0);

finally
CryptStream.Free;
end;
end;
 
请教高手作答
 
用内存映射,插入数据都很快。
 
kinneng,能说的详细一点吗?
 
流的话文件越大越慢,因为要全部读入!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
654
import
I
后退
顶部