Repository URL to install this package:
|
Version:
3.2.0 ▾
|
program tczstreamseek;
{$MODE OBJFPC}
{$ASSERTIONS ON}
uses
classes,
zstream;
const
val: Uint32 = $123456;
wasError: boolean = False;
var
data: TMemoryStream;
comprStream: TCompressionStream;
decomprStream: TDecompressionStream;
begin
data := TMemoryStream.Create();
comprStream := TCompressionStream.Create(clMax, data);
comprStream.WriteDWord(val);
comprStream.Free;
data.Seek(0, soFromBeginning);
decomprStream := TDecompressionStream.Create(data);
Assert(decomprStream.ReadDWord() = val);
Assert(decomprStream.Position = SizeOf(val));
decomprStream.Seek(0, soFromBeginning);
Assert(decomprStream.Position = 0);
Assert(decomprStream.ReadDWord() = val);
decomprStream.Seek(-SizeOf(val), soFromCurrent);
Assert(decomprStream.Position = 0);
Assert(decomprStream.ReadDWord() = val);
wasError := False;
decomprStream.Seek(0, soFromBeginning);
try
decomprStream.Seek(-SizeOf(val), soFromCurrent);
except
on EDecompressionError do
wasError := True;
end;
assert(wasError);
decomprStream.Seek(SizeOf(val), soFromBeginning);
Assert(decomprStream.Position = SizeOf(val));
wasError := False;
try
decomprStream.Seek(40, soFromBeginning);
except
on EDecompressionError do
wasError := True;
end;
assert(wasError);
end.