12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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.
|