Текстовые файлы

Файл, компонентами которого являются данные символьного типа, называется символьным или текстовым. Текстовый файл – это совокупность символов, разделенных на строки, причем в конце каждой строки стоит признак ее конца. Особенностью работы с текстовыми файлами является то, что параметры, значения которых вводятся и выводится с помощью процедур Read, ReadLn, Write, WriteLn, могут быть не обязательно типа Char или string, а и других простых типов, таких как целых, вещественных типов при вводе, целых, вещественных и логических типов при выводе. Имеется две стандартные файловые переменные для текстового файла Input и Output. Переменная Input по умолчанию связана с клавиатурой, а Output с экраном монитора. Если при работе с фалами типа TextFile в процедуре или функции не указана файловая переменная, считается, что используется файловая переменная Input или Output.

Объявление текстового файла выглядит следующим образом:

FileName: TextFile;

где

FileName — имя файловой переменной;

TextFile — обозначение типа, указывающее, что имя — это файловая переменная, представляющая текстовый файл.

Текстовый файл может быть открыт либо для чтения процедурой Reset, либо для записи процедурой ReWrite или Append.

Пример:

Посчитать количество положительных пар чисел, записанных в текстовом файле.

В данной программе в разделе initialization файловая переменная связывается с именем файла процедурой AssignFile, и он открывается для чтения и записи процедурой Reset. Предполагается, что файл уже создан, например, в среде Delphi или редакторе Блокнот. В разделе finalization фал закрывается процедурой CloseFile.

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

N:word;

function NumberRead:integer;

begin

if not SeekEof(Fil) then

read(Fil,Result)

else Result:=0;

end;

begin

N:=0;

while not SeekEof(Fil) do

if(NumberRead>0) and

(NumberRead>0) then

Inc(N);

Label1.Caption:='Число пар '+IntToStr(N);

end;

initialization

AssignFile(Fil,'File1.txt');

Reset(Fil);

finalization

CloseFile(Fil);

Пример:

В этой программе осуществляется чтение данных из текстового файла и вывод их на экран посредством процедуры ShowMessage.

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

{$I-} и {$I+} являются директивами компилятору, что в этом месте соответственно следует отключить и включить контроль ошибок ввода-вывода. В данном случае при неудачной попытке открытия файла c:\File1.txt (файл отсутствует или открыт для записи другой программой) эта программа не выдаст аварийной ошибки и продолжит выполнение данной процедуры. Это свойство полезно для обработки всех возможных случаев в работе программы. IOResult — переменная, которая хранит в себе код ошибки последней операции ввода-вывода. Если она равна нулю, то последняя операция была успешно выполнена.

EOF(Файл) — функция, возвращающая признак конца файла. То есть она показывает, достигнут или нет конец открытого файла.

ReadLn(Файл, Переменная) — процедура считывания переменной из файла. В отличие от команды Read производит считывание строки с завершающимся символом перевода строки под кодами 13 и 10 (клавиша Enter).

CloseFile(Файл) — процедура закрытия ранее открытого файла.

procedure TForm1.Button1Click(Sender: TObject);

Var f:TextFile; // объявление файловой переменной

st:String; // строковая переменная

begin

AssignFile(f,'c:\1.txt'); //привязка названия файла к файловой переменной

{$I-} // отключение контроля ошибок ввода-вывода

Reset(f); // открытие файла для чтения

{$I+} // включение контроля ошибок ввода-вывода

if IOResult<>0 then //проверка,если ли ошибка открытия

begin

ShowMessage('Ошибка открытия файла C:\1.TXT');

Exit; // выход из процедуры при ошибке открытия файла

end;

While not EOF(f) do //

begin

ReadLn(f,st); // читать из файла строку

ShowMessage(st); // выводить строку пользователю

end;

CloseFile(f); // закрыть файл

end;


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



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