
- •Лекция 1. Основы языков программирования.
- •Лекция 2. Способы записи алгоритмов.
- •Лекция 3. Знакомство с языком Паскаль.
- •Лекция 4. Структура программы на языке Паскаль.
- •Лекция 5. Стандартные типы данных.
- •5.1 Целые типы
- •5.2 Вещественные типы
- •5.3 Символьный тип.
- •5.4 Ограничительные типы.
- •5.5 Перечислимые типы.
- •Л.6. Операторы языка Паскаль Ввод исходных данных.
- •Расчет.
- •Стандартные функции Турбо Паскаля
- •Стандартные процедуры
- •Константы
- •Вывод результатов
- •Лекция 7. Операторы условий if, case
- •7.1 Оператор безусловного перехода
- •7.2 Условный оператор
- •7.3 Оператор варианта
- •Лекция 8. Операторы цикла for, while, repeat
- •8.1 Оператор цикла с предусловием.
- •8.2 Оператор цикла с постусловием.
- •8.3 Оператор цикла с параметром.
- •Лекция 9. Одномерные и двумерные массивы.
- •Работа с массивами
- •Инициализация элементов массива
- •Лекция 10. Процедуры и функции в Паскаль.
- •Лекция 11. Параметры в процедурах.
- •11.1 Механизм параметров.
- •11.2. Параметры - значения.
- •11.3. Параметры - переменные.
- •11.4. Безтиповые параметры.
- •Лекция 12. Типы данных, определяемые пользователем. Записи.
- •Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
- •13.1 Файловые типы
- •13.2 Операции ввода-вывода Write, Read
- •13.3. Перемещение по файлу.
- •13.4 Обработка ошибок ввода - вывода
- •13.5 Текстовые файлы
- •13.6 Файлы без типа.
- •Лекция 14. Модули и внешние файлы в Паскаль.
- •15.1. Компиляция и использование модулей
- •15.2. Компиляция и поиск модулей.
- •15.3. Стандартные модули
- •Лекция 15. Динамические структуры данных.
- •15.1 Ссылочные типы и указатели.
- •15.2 Статические переменные.
- •15.3. Создание и удаление динамических переменных.
- •15.4. Установка размеров динамической памяти.
- •Лекция.16. Графические возможности языка Паскаль.
- •Лекция17. Практическое применение языка Паскаль в решении технологических и экологических задач
Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
13.1 Файловые типы
В языке Паскаль под файлом понимается область памяти на внешнем запоминающем устройстве, способная хранить некоторую совокупность информации. В эту область внешней памяти как поместить определенные данные, так и извлечь из нее. Для этого используются переменные файлового типа, который предполагает интерпретацию файла как потенциально бесконечного списка значений одного и того же базового типа.
Var
F: file of integer;
С каждой переменной файлового типа связано понятие текущего указателя файла. Текущий указатель можно понимать как скрытую переменную (то есть неявно описанную с файловой переменной), которая обозначает некоторый конкретный элемент файла.
Рисунок 13.1 – Структура файла
Начальный элемент файла - нулевой! Базовый тип может быть любым за исключением файлового и комбинированного, с одним из полей - файлом.
Операции с файлами можно разбить на четыре основные группы:
установочные и завершающие;
ввод - вывод;
перемещение по файлу;
специальные операции.
В первую группу входят четыре операции, реализованные в виде стандартных процедур:
Assign, reset, rewrite, flush, close,..
Assign - предназначенная для установления связи между конкретным физическим файлом на магнитном носителе и переменной файлового типа. Эта переменная имеет два параметра. Первый параметр - имя файловой переменной, и второй параметр - строковое выражение, образующее литеральное имя файла.
Имя файла строится по правилам, принятым в OS MS DOS.
Assign (f, 'd:/users/is -200/myfile.dta')
Второй параметр процедуры может быть строкой, содержащей условное обозначение 'псевдофайлов' MS DOS, т. е. Связанных с конкретным устройством.
CON - вывод на экран или ввод с клавиатуры; LPT1, LPT2, LPT3 - вывод на печатающие устройства; PRN - синоним LPT1; COM1, COM2 - последовательные коммуникационные карты; AUX - синоним COM1; NUL - фиктивное устройство.
Reset, Rewrite. Эти процедуры имеют один и тот же параметр - файловую переменную и предназначены для открытия файла. (файловая переменная должна быть уже связана с конкретным дисковым файлом). Под открытием понимается поиск файла на внешнем носителе, образование специальных системных буферов для обмена с ними и установка текущего указателя на его начало.
Разница между этими двумя процедурами заключается в начальных действиях над файлами. Rest предполагает, что открываемый дисковый файл уже существует, в противном случае возникает ошибка. Rewrite допускает, что открываемый файл может еще не существовать. В этом случае процедура создает заданный файл! Если же файл существует, то процедура считывает его.
Flush (параметр - файловая переменная) используется для завершения обменов с файлом без его закрытия.
Close завершает действия с файлом, который указывается в качестве ее единственного параметра. При этом ликвидируются внутренние буфера, образованные при открытии. После этого файловую переменную можно связать посредством Assign с каким либо другим дисковым файлом.