Jump to content

[PASCAL] Data Files


CouldnoT
 Share

Recommended Posts

Data Files

 

Data files are different from text files in a few ways. Data files are random access which means you don't have to read through them line after line but instead access any part of the file at any time. Here is how you declare a data file: 

 

program DataFiles;

var
 f: file of Byte;

begin
end. 

 

We then use Assign in the same way as we do with a text file.

 

program DataFiles;

var
 f: file of Byte;

begin
 Assign(f,'MyFile.txt');
end. 

 

You can use Rewrite to create a new file or overwrite an existing one. The difference between text files and data files when using Rewrite is that data files can be read and written to. 

 

program DataFiles;

var
 f: file of Byte;

begin
 Assign(f,'MyFile.txt');
 Rewrite(f);
end. 

 

Reset is the same as Rewrite except that it doesn't overwrite the file.

 

program DataFiles;

var
 f: file of Byte;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
end.

 

When you write to a file using the Write command you must first put the value to be written to the file into a variable. Before you can write to or read from a data file you must use the Seek command to find the right place to start writing. You must also remember that data files start from position 0 and not 1.

 

program DataFiles;

var
 f: file of Byte;
 b: Byte;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 b := 1;
 Seek(f,0);
 Write(f,b);
end. 

 

The Read command is used to read from a data file.

 

program DataFiles;

var
 f: file of Byte;
 b: Byte;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 Seek(f,0);
 Read(f,b);
end. 

 

You must close a data file when you are finished with it just like with text files.

 

program DataFiles;

var
 f: file of Byte;
 b: Byte;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 Seek(f,0);
 Read(f,b);
 Close(f);
end. 

 

The FileSize command can be used with the FilePos command to find out when you have reached the end of the file. FileSize returns the actual number of records which means it starts at 1 and not 0. The FilePos command will tell at what position in the file you are.

 

program DataFiles;
var
 f: file of Byte;
 b: Byte; 

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 while FilePos(f) <> FileSize(f) do
 begin
 Read(f,b);
 Writeln(b);
 end;
 Close(f);
end. 

 

The Truncate command will delete everything in the file from the current position.

 

program DataFiles;

var
 f: file of Byte;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 Seek(f,3);
 Truncate(f);
 Close(f);
end. 

 

One of the most useful things about data files is that you can use records with them.

 

program DataFiles;

type
 StudentRecord = Record
 Number: Integer;
 Name: String;

var
 Student: StudentRecord;

begin
 Assign(f,'MyFile.txt');
 Reset(f);
 Student.Number := 12345;
 Student.Name := 'John Smith';
 Write(f,Student);
 Close(f);
end.

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.