Sign in Join
FPDoc Onlineexperiment

TStream.Read procedure

Member of TStreamIn unit Objects

Read data from stream to buffer.

Declaration

pascal
procedure Read(var Buf; Count: LongInt); virtual

Description

Read is an abstract method that should be overridden by descendent objects.

Read reads Count bytes from the stream into Buf. It updates the position pointer, increasing it's value with Count. Buf must be large enough to contain Count bytes.

Errors

No checking is done to see if Buf is large enough to contain Count bytes.

See also

Example: ex18

pascal
program ex18;

{ Program to demonstrate the TStream.Read method }

Uses Objects;

Var Buf1,Buf2 : Array[1..1000] of Byte;
    I : longint;
    S : PMemorySTream;

begin
  For I:=1 to 1000 do
    Buf1[I]:=Random(1000);
  Buf2:=Buf1;
  S:=New(PMemoryStream,Init(100,10));
  S^.Write(Buf1,SizeOf(Buf1));
  S^.Seek(0);
  For I:=1 to 1000 do
    Buf1[I]:=0;
  S^.Read(Buf1,SizeOf(Buf1));
  For I:=1 to 1000 do
    If Buf1[I]<>buf2[i] then
      Writeln ('Buffer differs at position ',I);
  Dispose(S,Done);
end.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.