Відкриття файлу для введення (читання) виконується викликом процедури Reset, що має один параметр – файлову змінну. Перед викликом процедури Reset за допомогою функції AssignFile файлова змінна повинна бути пов’язана з конкретним файлом.
Наприклад, такі інструкції відкривають файл для введення:
AssignFile (f, 'C: \ data.txt'); Reset (f);
Якщо ім’я файлу вказано невірно, наприклад файлу з вказаним ім’ям на диску немає, то виникає помилка часу виконання програми. Слід зазначити, що іншою причиною виникнення помилки при відкритті файлу, що знаходиться на дискеті, може бути відсутність готовності дисковода, простіше кажучи, відсутність диска в накопичувачі.
Тому в програмі слід передбачити можливість повторної спроби відкриття файлу після підтвердження повторення операції.
Як і при відкритті файлу для запису, програма може взяти на себе завдання обробки можливої помилки при відкритті файлу, перевіряючи значення функції IOResult.
Фрагмент програми, текст якого приведений в лістингу 7.4, використовує значення функції lOResult для перевірки результату відкриття файлу. Якщо спроба відкрити файл викликає помилку, то програма виводить діалогове вікно з повідомленням про помилку і запитом на підтвердження повторного відкриття файлу.
Лістинг 7.4. Обробка помилки відкриття файлу (фрагмент програми)
var fname : String [80 ]; // ім'я файлу f : TextFile; // файл res : Integer; // код помилки відкриття файлу (значення lOResult) answ : Word; // відповідь користувача begin fname : = 'A: \ test.txt'; AssignFile (f, fname); repeat < $ I-} Reset (f); // відкрити файл для читання {$! +} res: = IOResult; if res <> 0 then answ: = MessageDlg ( 'Помилка відкриття' + fname + # 13 + 'Повторити спробу?', mtWarning, [mbYes, mbNo], 0); until (res = 0) OR (answ = mrNo); if res <> 0 then exit; // завершення процедури // тут інструкції, які виконуються // в разі успішного відкриття файлу end;