2
0

mstream.pp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. Program TestStream;
  2. uses classes;
  3. Var Stream : TMemoryStream;
  4. S,T : String;
  5. begin
  6. S:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  7. T:=S;
  8. Writeln ('Creating stream.');
  9. Stream:=TMemoryStream.Create;
  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.WriteBuffer (S[1],Length(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. If Stream.Read(T[1],Length(S))<>Length(S) then Writeln ('Couldn''t read string.');
  32. Stream.WriteByte (1);
  33. Stream.WriteWord (2);
  34. Stream.WriteDWord (3);
  35. Stream.WriteBuffer (S[1],Length(S));
  36. Writeln ('Stream Size is : ',Stream.Size);
  37. Stream.SaveToFile('Test2.dat');
  38. Stream.Free;
  39. end.