2
0

fstream.pp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. Program TestStream;
  2. uses classes;
  3. Var Stream : TFileStream;
  4. S,T : String;
  5. begin
  6. S:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  7. T:=S;
  8. Writeln ('Creating stream.');
  9. Stream:=TFileStream.Create('Test2.dat',fmcreate);
  10. Writeln ('Initial Size : ',Stream.Size);
  11. Writeln ('Initial Position : ',Stream.Position);
  12. Stream.WriteByte (1);
  13. Stream.WriteWord (2);
  14. Stream.WriteDWord (3);
  15. Stream.WriteBuffer (S[1],Length(S));
  16. Writeln ('Stream Size is : ',Stream.Size);
  17. Stream.Seek(0,soFromBeginning);
  18. If Stream.ReadByte<>1 then Writeln ('First byte not 1');
  19. If Stream.ReadWord<>2 then Writeln ('First word not 2');
  20. If Stream.ReadDWord<>3 then Writeln ('First DWord not 3');
  21. If Stream.Read(T[1],Length(S))<>Length(S) then
  22. Writeln ('Couldn''t read string.');
  23. Writeln ('Second pass.');
  24. Stream.WriteByte (1);
  25. Stream.WriteWord (2);
  26. Stream.WriteDWord (3);
  27. Stream.WriteBuffer (S[1],Length(S));
  28. Writeln ('Stream Size is : ',Stream.Size);
  29. Writeln ('Stream Position is : ',Stream.Position);
  30. Writeln ('Freeing stream.');
  31. Stream.Free;
  32. Writeln ('Creating stream Read-Only');
  33. Stream:=TFileStream.Create('Test2.dat',fmOpenRead);
  34. Writeln ('Stream Size is : ',Stream.Size);
  35. Stream.Seek(0,soFromBeginning);
  36. If Stream.ReadByte<>1 then Writeln ('First byte not 1');
  37. If Stream.ReadWord<>2 then Writeln ('First word not 2');
  38. If Stream.ReadDWord<>3 then Writeln ('First DWord not 3');
  39. If Stream.Read(T[1],Length(S))<>Length(S) then
  40. Writeln ('Couldn''t read string.');
  41. If Stream.ReadByte<>1 then Writeln ('Second byte not 1');
  42. If Stream.ReadWord<>2 then Writeln ('Second word not 2');
  43. If Stream.ReadDWord<>3 then Writeln ('Second DWord not 3');
  44. If Stream.Read(T[1],Length(S))<>Length(S) then
  45. Writeln ('Couldn''t read string.');
  46. Writeln ('Stream Size is : ',Stream.Size);
  47. Writeln ('Stream Position is : ',Stream.Position);
  48. Stream.Free;
  49. end.