FT
Size: a a a
FT
HG
HG
SB
HG
HG
FT
HG
FT
HG
HG
HG
FT
HG
AS
z
VA
z
z
function TBufferedFileStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
var
lNewOffset: int64;
begin
Case Origin of
soEnd:
begin
lNewOffset:=FCacheStreamSize+Offset;
end;
soBeginning:
begin
lNewOffset:=0+Offset;
end;
soCurrent:
begin
lNewOffset:=FCacheStreamPosition+Offset;
end;
end;
if lNewOffset>0 then begin
FCacheStreamPosition:=lNewOffset;
Result:=lNewOffset;
end else begin
// This is compatible with FPC stream
// as it returns the negative value :-?
// but in fact does not move the read pointer.
Result:=-1;
end;
end;
z