Difference between revisions of "TFileStream"

From Free Pascal wiki
Jump to navigationJump to search
(Remove incorrect statement that TFileStream reads entire file. Avoid FreeAndNil of local variables.)
m (Fixed syntax highlighting; typos)
Line 26: Line 26:
 
|}
 
|}
  
* read entire file ''fnam'' to a string.
+
* read entire file ''fnam'' into a string.
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
function readstream(fnam: string): string;
 
function readstream(fnam: string): string;
 
var
 
var
Line 47: Line 48:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
* Write a string ''txt'' to file ''fnam''.
+
* Write a string ''txt'' to the file ''fnam''.
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
procedure writestream(fnam: string; txt: string);
 
procedure writestream(fnam: string; txt: string);
 
var
 
var
Line 66: Line 68:
  
 
== See also ==
 
== See also ==
 +
* [[File types]]
 
* [[doc:rtl/classes/tfilestream.html|TFileStream doc]]
 
* [[doc:rtl/classes/tfilestream.html|TFileStream doc]]
 
* [[doc:rtl/classes/tstream.html|TStream doc]]
 
* [[doc:rtl/classes/tstream.html|TStream doc]]

Revision as of 00:30, 16 January 2020

Deutsch (de) English (en) français (fr) polski (pl)

A TFileStream is a descendant of TStream that gets/stores its data from/to a file on disk.

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 entire file fnam into a string.
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
    strm.Free;
  end;
  result := txt;
end;
  • Write a string txt to the 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
    strm.Free;
  end;
end;

See also