Difference between revisions of "untyped files"

From Free Pascal wiki
Jump to navigationJump to search
(English page translated from German page)
 
m (→‎Create file: Fix typo)
Line 13: Line 13:
 
   sinContent : Single;
 
   sinContent : Single;
 
  begin
 
  begin
   Assign(dat�File, 'example.txt');  // Assigns the name of the file to the variable datFile and opens the file
+
   Assign(datFile, 'example.txt');  // Assigns the name of the file to the variable datFile and opens the file
 
   ReWrite(datFile);                // The old file is overwritten
 
   ReWrite(datFile);                // The old file is overwritten
 
   strName := 'qwert';
 
   strName := 'qwert';

Revision as of 00:25, 16 January 2020

Deutsch (de) English (en) polski (pl)

Untyped text file

An untyped text file is suitable for processing files of any size. With untyped files, the content of a file is read line by line. Conversely, the file is written line by line. The data records of an untyped file can be of different lengths.

Create file

 var
   datFile : TextFile;  // or: datFile: text
   strName : String;
   sinContent : Single;
 begin
   Assign(datFile, 'example.txt');  // Assigns the name of the file to the variable datFile and opens the file
   ReWrite(datFile);                // The old file is overwritten
   strName := 'qwert';
   sinContent := 1800.23;
   WriteLn(datFile, strName, sinContent);  // Writes the first record to the new file
   ...
 end;

In the OBJPFC or DELPHI compiler mode, the AssignFile procedure is available in addition to Assign to avoid confusion with TPersistent.Assign.

Open file

 var
   datFile : TextFile;
   strName : String;
   sinContent : Single;
 begin
   Assign(datFile, 'example.txt');        // Assigns the name of the file to the datFile variable
   Reset(datFile);                        // Sets the file pointer to the beginning of the file
   ReadLn(datFile, strName, sinContent);  // Reads the first line from the file
   ReadLn(datFile, strName, sinContent);  // Reads the second line from the file
   ...
 end;

Close file

 var
   datFile : TextFile;
   strName : String;
   sinContent : Single;
 begin
   ...
   Close(datFile);  // closes the file
 end;

Similar to AssignFile / Assign, the CloseFile procedure is available in OBJPFC or DELPHI compiler mode.

Append a record to an existing file

For text files (untyped files), a data record can be added to the end of the file using the Append command.

 var
   datFile : TextFile;
   strName : String;
   sinContent : Single;
 begin
   Assign(datFile, 'example.txt');   // Assigns the name of the file to the datFile variable
   Append(datFile);                  // Opens the file for write access and adds records to the end of the file
   strName := 'sdf' ;
   sinContent : = 2001.21 ;
   WriteLn(datFile, strName, sinContent);  // Writes another record to the new file
   Close(datFile);                         // Closes the file

Read file completely

 var
   datFile : TextFile;
   strName : String;
   sinContent : Single;
 begin
   Assign(datFile, 'example.txt');
   Reset(datFile);

   while not eof(datFile)                  // As long as data can still be read
     do begin
       read(datFile, strName, sinContent); // Read file content
     end;

   Close(datFile);
 end;

See also

File types