Обычно, в процессе выполнения первоначальные данные в программу вводятся пользователем с клавиатуры – такой способ использования исходных данных порой занимает определенное время. Однако в языке Delphi, как и в других языках программирования, программа может считывать первичные данные, например, из текстового файла.
Осуществим ввод из файла Dephi, следуйте следующей пошаговой рекомендации:
- объявление файловой переменной типа TextFile,
- назначение этой файловой переменной (применяя функцию AssignFile) имени файла, из которого первичные данные будут вводиться,
- открытие файла для чтения,
- чтение (ввод) данных с использованием инструкции read или readln.
Открытие файла для чтения Delphi:
Чтобы открыть файл для ввода(чтения), используют процедуру Reset, обладающей одним параметром – файловой переменной. Перед вызовом данной процедуры нужно связать файловую переменную с конкретным(реальным) файлом при помощи функции AssignFile.
Пример. (Вызов инструкции открытия файла для ввода):
В случае неверного указания имени файла (например, файл с данным именем отсутствует на диске) происходит возникновение ошибки времени выполнения программы.
Также отметим, что другая причина появления ошибки при открытии файла, который находится на гибком диске, связана в большей степени с отсутствием готовности дисковода (другими словами, диск отсутствует в накопителе). На основе этого в программе необходимо учесть вероятность повторного открытия файла после того, как было подтверждено повторение операции.
Как и в случае открытия файла для записи, программой может быть проведена обработка возможной ошибки в момент открытия файла, используя проверку значения функции 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;