ex20.pp 661 B

123456789101112131415161718192021222324252627
  1. Program ex20;
  2. { Program to demonstrate the TMemoryStream.Truncate method }
  3. Uses Objects;
  4. Var L : String;
  5. P : PString;
  6. S : PMemoryStream;
  7. I,InitMem : Longint;
  8. begin
  9. initMem:=Memavail;
  10. L:='Some constant string';
  11. { Buffer size of 100 }
  12. S:=New(PMemoryStream,Init(1000,100));
  13. Writeln ('Free memory : ',Memavail);
  14. Writeln ('Writing 100 times "',L,'" to stream.');
  15. For I:=1 to 100 do
  16. S^.WriteStr(@L);
  17. Writeln ('Finished. Free memory : ',Memavail);
  18. S^.Seek(100);
  19. S^.Truncate;
  20. Writeln ('Truncated at byte 100. Free memory : ',Memavail);
  21. Dispose (S,Done);
  22. Writeln ('Finished. Lost ',InitMem-Memavail,' Bytes.');
  23. end.