[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Objects' (#rtl)

# TStream.Read

Read data from stream to buffer.

## Declaration

Source position: objects.pp line 302

`procedure TStream.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

TStream.Write |  | Write a number of bytes to the stream.
TStream.ReadStr |  | Read a shortstring from the stream.
TStream.StrRead |  | Read a null-terminated string from the stream.

## Example

    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.