русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Открытие файла


Дата добавления: 2013-12-23; просмотров: 3210; Нарушение авторских прав


ВВОД ИЗ ФАЙЛА

Закрытие файла

Ошибки открытия файла

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

Выяснить, завершилась ли успехом процедура открытия файла, можно, проверив значение функции IOResult(Input-Output Result ¾ результат ввода-вывода). Функция IOResult() возвращает 0, если операция ввода-вывода завершилась успешно; в противном случае ¾ не ноль. Однако чтобы программа могла проверить результат выполнения операции ввода-вывода, нужно разрешить ей это делать, добавив перед вызовом процедуры открытия файла строку {$I-}. После инструкции открытия файла следует поместить {$I+}.

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

Рис. 27. Блок-схема алгоритма открытия файла с обработкой возможной ошибки

assign (f, filename) ;

{$I-} append(f) ;

{$I+} if IOResult<>0

then rewrite(f) ;

Перед завершением работы программа должна закрыть все открытые файлы. Это делается вызовом процедуры CLOSE. Процедура CLOSE имеет один параметр ¾ имя файловой переменной.

Пример использования процедуры: close(f) ;

Язык Паскаль позволяет вводить исходные данные для программы не только с клавиатуры, но и из текстового файла. Чтобы воспользоваться этой возможностью, нужно объявить файловую переменную типа TEXT, назначить ей при помощи инструкции ASSIGN имя файла, из которого будут читаться данные, открыть файл для чтения (ввода) и прочитать (ввести) данные, используя инструкцию READ или READLN.



Открытие файла для ввода (чтения) выполняется вызовом процедуры RESET, имеющей один параметр ¾ файловую переменную. Перед вызовом процедуры RESET файловой переменной назначается имя файла вызовом процедуры ASSIGN.

Следующие инструкции открывают файл для ввода:

assign(f, ‘c:\data.txt’) ;

reset(f) ;

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

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

label

konec ;

var

f : text ;

fname : string[80] ; { имя файла }

res : integer ; { результата открытия файла }

otv : char ; {ответ на предложение повторить попытку открыть файл}

begin

fname := ‘a:\test.txt’ ;

assign ( f, fname ) ;

repeat

{$I-}

reset ( f ) ; { открыть файл для чтения }

{$I+}

res := IOResult ;

if res <> 0

then begin

write(‘ ОШИБКА: файл ‘,fname,’ не найден’) ;

writeln(‘ или диск не готов.’) ;

write(‘Повторить попытку ? (д/н)-> ‘) ;

readln ( otv ) ;

end ;

until ( res = 0 ) OR ( otv = ‘н’ ) ;

if res <> 0 then goto konec ;

{ здесь инструкции программы }

konec :

end.



<== предыдущая лекция | следующая лекция ==>
Открытие файла для вывода | ВВЕДЕНИЕ В СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.