Difference between revisions of "Text"

From Lazarus wiki
m (Small wording improvements)
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 1: Line 1:
 
The [[Type|type]] '''TextFile''' (or, equivalent and older, just '''Text''') is used in a Pascal program to read and write from a text file.
 
The [[Type|type]] '''TextFile''' (or, equivalent and older, just '''Text''') is used in a Pascal program to read and write from a text file.
  
<delphi>{$mode objfpc}{$H+}
+
<syntaxhighlight>{$mode objfpc}{$H+}
 
var  
 
var  
 
   MyFile: TextFile;
 
   MyFile: TextFile;
Line 14: Line 14:
 
   end;
 
   end;
 
end.
 
end.
</delphi>
+
</syntaxhighlight>
  
 
The [[Variable|variable]] representing the text file (''MyFile'' in the example above) may be used to input, output, or both, to the actual file.  It must be tied to the actual file  by a [[RTL|run-time library]] routine [[AssignFile]] (older name: just  [[Assign]]). Then the file must be opened by the [[Reset]], [[Rewrite]] or [[Append]] procedure. You can read and write to file using Read, Readln, Write, Writeln. After you have finished processing the file, you should release the necessary file resources (and possibly flush the data to be written) by closing the file, calling [[CloseFile]] (older name: just [[Close]]).
 
The [[Variable|variable]] representing the text file (''MyFile'' in the example above) may be used to input, output, or both, to the actual file.  It must be tied to the actual file  by a [[RTL|run-time library]] routine [[AssignFile]] (older name: just  [[Assign]]). Then the file must be opened by the [[Reset]], [[Rewrite]] or [[Append]] procedure. You can read and write to file using Read, Readln, Write, Writeln. After you have finished processing the file, you should release the necessary file resources (and possibly flush the data to be written) by closing the file, calling [[CloseFile]] (older name: just [[Close]]).

Revision as of 16:03, 24 March 2012

The type TextFile (or, equivalent and older, just Text) is used in a Pascal program to read and write from a text file.

{$mode objfpc}{$H+}
var 
  MyFile: TextFile;
  S: string;
begin
  AssignFile(MyFile, 'a.txt');
  Reset(MyFile); 
  try
    Readln(MyFile, S);
  finally
    CloseFile(MyFile);
  end;
end.

The variable representing the text file (MyFile in the example above) may be used to input, output, or both, to the actual file. It must be tied to the actual file by a run-time library routine AssignFile (older name: just Assign). Then the file must be opened by the Reset, Rewrite or Append procedure. You can read and write to file using Read, Readln, Write, Writeln. After you have finished processing the file, you should release the necessary file resources (and possibly flush the data to be written) by closing the file, calling CloseFile (older name: just Close).

Note that TextFile type is very different than the file of char type:

  • file of char is just a simple sequence of chars (single-byte characters), and you can only read or write a single character at a time. That is, you can only call Read(F, C) or Write(F, C) where C is variable of char type.
  • TextFile offers much more functions, and represents the usual concept of a text file. You can use Read, Readln, Write, Writeln to read/write from a text file a number of standard types, like strings, integers and floating-point values. Line endings (Unix #10, DOS/Windows #13#10, etc.) are also automatically handled: when reading, various line endings are recognized; when writing, the current OS line endings are used.

File-related types, procedures and functions:

File - Text - AssignFile - CloseFile - Reset - Rewrite - Get - Put - Read - Readln - Write - Writeln