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'' | + | * 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;