mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-01 10:13:58 +02:00
53 lines
1.8 KiB
ObjectPascal
53 lines
1.8 KiB
ObjectPascal
Program TestStream;
|
|
|
|
uses classes;
|
|
|
|
Var Stream : TFileStream;
|
|
S,T : String;
|
|
|
|
begin
|
|
S:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
T:=S;
|
|
Writeln ('Creating stream.');
|
|
Stream:=TFileStream.Create('Test2.dat',fmcreate);
|
|
Writeln ('Initial Size : ',Stream.Size);
|
|
Writeln ('Initial Position : ',Stream.Position);
|
|
Stream.WriteByte (1);
|
|
Stream.WriteWord (2);
|
|
Stream.WriteDWord (3);
|
|
Stream.WriteBuffer (S[1],Length(S));
|
|
Writeln ('Stream Size is : ',Stream.Size);
|
|
Stream.Seek(0,soFromBeginning);
|
|
If Stream.ReadByte<>1 then Writeln ('First byte not 1');
|
|
If Stream.ReadWord<>2 then Writeln ('First word not 2');
|
|
If Stream.ReadDWord<>3 then Writeln ('First DWord not 3');
|
|
If Stream.Read(T[1],Length(S))<>Length(S) then
|
|
Writeln ('Couldn''t read string.');
|
|
Writeln ('Second pass.');
|
|
Stream.WriteByte (1);
|
|
Stream.WriteWord (2);
|
|
Stream.WriteDWord (3);
|
|
Stream.WriteBuffer (S[1],Length(S));
|
|
Writeln ('Stream Size is : ',Stream.Size);
|
|
Writeln ('Stream Position is : ',Stream.Position);
|
|
Writeln ('Freeing stream.');
|
|
Stream.Free;
|
|
Writeln ('Creating stream Read-Only');
|
|
Stream:=TFileStream.Create('Test2.dat',fmOpenRead);
|
|
Writeln ('Stream Size is : ',Stream.Size);
|
|
Stream.Seek(0,soFromBeginning);
|
|
If Stream.ReadByte<>1 then Writeln ('First byte not 1');
|
|
If Stream.ReadWord<>2 then Writeln ('First word not 2');
|
|
If Stream.ReadDWord<>3 then Writeln ('First DWord not 3');
|
|
If Stream.Read(T[1],Length(S))<>Length(S) then
|
|
Writeln ('Couldn''t read string.');
|
|
If Stream.ReadByte<>1 then Writeln ('Second byte not 1');
|
|
If Stream.ReadWord<>2 then Writeln ('Second word not 2');
|
|
If Stream.ReadDWord<>3 then Writeln ('Second DWord not 3');
|
|
If Stream.Read(T[1],Length(S))<>Length(S) then
|
|
Writeln ('Couldn''t read string.');
|
|
Writeln ('Stream Size is : ',Stream.Size);
|
|
Writeln ('Stream Position is : ',Stream.Position);
|
|
Stream.Free;
|
|
end.
|