TFileStream

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de)

A TFileStream is a descendant of TStream that gets/stores its data from/to a file on disk. A TFileStream reads entire file data into memory and vice versa.

Constant Decimal Description
fmCreate 65280 Creates a new file
fmOpenRead 0 opens a file for reading
fmOpenWrite 1 opens a file for writing
fmOpenReadWrite 2 opens a file for reading and writing
fmShareDenyWrite 32 prohibit writing if file is already opened

read from file fnam.

function readstream( fnam: string ): string;
var
  strm: TFileStream;
  n: longint;
  txt: string;
begin
  txt := '';
  strm := TFileStream.Create( fnam, fmOpenRead or fmShareDenyWrite );
  try
    n := strm.Size;
    SetLength( txt, n );
    strm.Read( txt[1], n );
  finally
    FreeAndNil( strm );
  end;
  result := txt;
end;

Write txt to file fnam.

procedure writestream( fnam: string; txt: string );
var
  strm: TFileStream;
  n: longint;
begin
  strm := TFileStream.Create( fnam, fmCreate );
  n := Length( txt );
  try
    strm.Position := 0;
    strm.Write( txt[1], n );
  finally
    FreeAndNil( strm );
  end;
end;

See also