Чтение из текстового файла

Базовый файловый ввод-вывод

Работа с текстовыми файлами

Для получения доступа к текстовым файлам служат переменные типа Text:

var

myFile: Text;

Прежде чем можно будет приступить к работе с файлом, с помощью процедуры AssignFile его нужно присвоить переменной типа Text. Эта процедура принимает два параметра: переменную файла и имя файла.

procedure AssignFile(var F; FileName: string);

AssignFile(myFile, 'data.txt');

После того как имя файла присвоено переменной файла, необходимо определить действия, которые нужно выполнять с файлом. Файл можно подготовить к чтению, записи или дополнению.

Запись в текстовый файл

Чтобы подготовить файл к записи, необходимо использовать процедуру Rewrite, которая всегда создает новый пустой файл. Если файл с таким же именем файла уже существует, процедура Rewrite вначале удаляет существующий файл, а затем заменяет его новым пустым файлом. Затем процедура открывает файл и устанавливает указатель позиции на начало файла.

При работе с текстовыми файлами процедуре Rewrite необходимо передавать только переменную типа Text:

procedure Rewrite(var F: File [; Recsize: Word]);

Rewrite(myFile);

Когда файл открыт и готов к записи, для записи текста в текстовый файл можно использовать стандартную процедуру WriteLn. При выполнении записи в текстовый файл первым параметром, переданным процедуре WriteLn, должна быть переменная файла:

procedure WriteLn([var F: Text;] P1 [, P2,...,Pn]);

WriteLn(myFile, 'cave canem');

По завершении работы с файлом его всегда следует закрывать, чтобы обеспечить корректное сохранение файла на диске и освободить любую память, занятую в процессе записи. Для закрытия файла служит процедура CloseFile, принимающая единственный параметр — файл, который нужно закрыть:

procedure CloseFile(var F);

CloseFile(myFile);

Пример программы записи строки текста в текстовый файл:

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

myFile: Text;

begin

AssignFile(myFile, 'data.txt');

Rewrite(myFile);

Writeln(myFile, 'cave canem');

CloseFile(myFile);

end.

Чтение из текстового файла

Для подготовки файла к чтению используется процедура Reset. Эта процедура, подобно процедуре Rewrite, принимает только параметр типа файла. Ее можно считать безопасной в том смысле, что она успешно работает, если дисковод и/или каталог, указанный в имени файла, существует. В отличие от Rewrite, выполнение процедуры Reset будет невозможным, если файл, присвоенный переменной файла, не существует.

Для выполнения чтения данных из текстового файла можно использовать процедуру ReadLn. При этом первым передаваемым процедуре параметром должна быть переменная файла, а вторым — строковая переменная, которая будет временно хранить значение, считанное из файла.

Следующий пример демонстрирует считывание значений из текстового файла и их отображение на экране.

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

myFile: Text;

line: string;

begin

AssignFile(myFile, 'data.txt');

Reset(myFile);

Readln(myFile, line);

Writeln(line);

CloseFile(myFile);

end.

Этот код будет успешно работать до тех пор, пока существует файл data.txt. Если этот файл не существует, программа даст сбой. Во избежание остановки приложения при отсутствии файла необходимо выполнять проверку успешности открытия файла с помощью процедуры Reset.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: