tbytesstreamtest.pp 638 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. program tbytesstreamtest;
  2. {$mode objfpc}{$H+}
  3. {$apptype console}
  4. uses
  5. SysUtils, Classes;
  6. var
  7. BS: TBytesStream;
  8. MS: TMemoryStream;
  9. B: TBytes;
  10. begin
  11. B := TBytes.Create(1, 2, 3);
  12. BS := TBytesStream.Create(B);
  13. WriteLn(BS.Size);
  14. // save it to regular memory stream
  15. MS := TMemoryStream.Create;
  16. try
  17. BS.SaveToStream(MS);
  18. finally
  19. BS.Free;
  20. end;
  21. // now restore and compare
  22. BS := TBytesStream.Create;
  23. try
  24. MS.Position := 0;
  25. BS.LoadFromStream(MS);
  26. B := BS.Bytes;
  27. if (Length(B) < 3) or (B[0] <> 1) or (B[1] <> 2) or (B[2] <> 3) then
  28. halt(1);
  29. finally
  30. BS.Free;
  31. end;
  32. MS.Free;
  33. end.