Ввод из файла Delphi

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

Осуществим ввод из файла Dephi, следуйте следующей пошаговой рекомендации:

  1. объявление файловой переменной типа TextFile,
  2. назначение этой файловой переменной (применяя функцию AssignFile) имени файла, из которого первичные данные будут вводиться,
  3. открытие файла для чтения,
  4. чтение (ввод) данных с использованием инструкции read или readln.

Открытие файла для чтения Delphi:

Чтобы открыть файл для ввода(чтения), используют процедуру Reset, обладающей одним параметром – файловой переменной. Перед вызовом данной процедуры нужно связать файловую переменную с конкретным(реальным) файлом при помощи функции AssignFile.

Пример. (Вызов инструкции открытия файла для ввода):

AssignFile(fn, ‘m:testfile.txt’);  Reset(fn);

В случае неверного указания имени файла (например, файл с данным именем отсутствует на диске) происходит возникновение ошибки времени выполнения программы.

Также отметим, что другая причина появления ошибки при открытии файла, который находится на гибком диске, связана в большей степени с отсутствием готовности дисковода (другими словами, диск отсутствует в накопителе). На основе этого в программе необходимо учесть вероятность повторного открытия файла после того, как было подтверждено повторение операции.

Как и в случае открытия файла для записи, программой может быть проведена обработка возможной ошибки в момент открытия файла, используя проверку значения функции IOResult. Ниже представим фрагмент исходного кода программы, в котором проводится проверка результата открытия файла с применением функции lOResult.

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

Пример. (Обработка ошибки при открытии файла (используется функция IOResult Delphi))

var
fn:string[90]; // имя файла 
f:TextFile;     // текстовый файл 
kod: integer; // код ошибки открытия файла 
otvet: word;  // ответ пользователя 
begin
fn:= 'a:testfile.txt'; 
AssignFile (f, fn); repeat {$I-}
Reset(f); // открываем файл для чтения 
{$!+}
kod:=IOResult;  // значение функции IOResult
if kod <> 0 then
otvet:=MessageDlg('Ошибка открытия файла ' + fn+#13 +'Повторить попытку?',mtWarning, [mbYes, mbNo],0); 
until (kod = 0) or (otvet = mrNo);
if kod <> 0 then  exit; // завершение процедуры 
//  при успешном открытии файла здесь выполняются необходимые инструкции
end;

 

Рейтинг
( Пока оценок нет )
Загрузка ...