sstream.pp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. Program TestStream;
  2. uses classes;
  3. Var Stream : TStringStream;
  4. S,T : AnsiString;
  5. begin
  6. S:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  7. T:=S;
  8. Writeln ('Creating stream.');
  9. Stream:=TStringStream.Create(S);
  10. Writeln ('Initial Size : ',Stream.Size);
  11. Writeln ('Initial Position : ',Stream.Position);
  12. Writeln ('Setting new size to 100');
  13. Stream.Size:=100;
  14. Writeln ('New Size : ',Stream.Size);
  15. Writeln ('new Position : ',Stream.Position);
  16. Stream.WriteByte (1);
  17. Stream.WriteWord (2);
  18. Stream.WriteDWord (3);
  19. Stream.WriteString (S);
  20. Writeln ('Size after write : ',Stream.Size);
  21. Writeln ('Position after write : ',Stream.Position);
  22. Writeln ('Truncating size');
  23. Stream.Size:=Stream.Position;
  24. Writeln ('Stream Size is : ',Stream.Size);
  25. Writeln ('Stream Position : ',Stream.Position);
  26. Writeln ('Seek to position 0 : ', Stream.Seek(0,soFromBeginning));
  27. Writeln ('new Position : ',Stream.Position);
  28. If Stream.ReadByte<>1 then Writeln ('First byte not 1');
  29. If Stream.ReadWord<>2 then Writeln ('First word not 2');
  30. If Stream.ReadDWord<>3 then Writeln ('First Word not 3');
  31. T:=Stream.ReadString(Length(S));
  32. If Length(T)<>Length(S) then
  33. Writeln ('Couldn''t read string.');
  34. Stream.WriteByte (1);
  35. Stream.WriteWord (2);
  36. Stream.WriteDWord (3);
  37. Stream.WriteBuffer (S[1],Length(S));
  38. Writeln ('Stream Size is : ',Stream.Size);
  39. Stream.Free;
  40. end.