* fixed tdynamicarray.readstream

This commit is contained in:
peter 2001-03-05 21:40:01 +00:00
parent 1b1f938c43
commit 668e90ef91

View File

@ -258,7 +258,7 @@ interface
function read(var d;len:integer):integer;
procedure write(const d;len:integer);
procedure writestr(const s:string);
procedure readstream(f:TCStream);
procedure readstream(f:TCStream;maxlen:longint);
procedure writestream(f:TCStream);
property BlockSize : integer read FBlocksize;
property FirstBlock : PDynamicBlock read FFirstBlock;
@ -1591,13 +1591,18 @@ end;
end;
procedure tdynamicarray.readstream(f:TCStream);
procedure tdynamicarray.readstream(f:TCStream;maxlen:longint);
var
i,left : integer;
begin
if maxlen=-1 then
maxlen:=maxlongint;
repeat
left:=blocksize-FPosnblock^.used;
if left>maxlen then
left:=maxlen;
i:=f.Read(FPosnblock^.data[FPosnblock^.used],left);
dec(maxlen,i);
inc(FPosnblock^.used,i);
if FPosnblock^.used=blocksize then
begin
@ -1609,7 +1614,7 @@ end;
FPosnblock:=FLastblock;
end;
end;
until (i<left);
until (i<left) or (maxlen=0);
end;
@ -1629,7 +1634,10 @@ end;
end.
{
$Log$
Revision 1.3 2000-12-29 21:57:27 peter
Revision 1.4 2001-03-05 21:40:01 peter
* fixed tdynamicarray.readstream
Revision 1.3 2000/12/29 21:57:27 peter
* 'classified' tdictionary, but leave it within an define
Revision 1.2 2000/12/25 00:07:25 peter