- •Содержание
- •Часть 1. Основные понятия программирования §1.1. Этапы разработки программного обеспечения
- •§1.2. Основные сведения об алгоритмах Понятие алгоритма
- •Свойства алгоритма
- •Формы записи алгоритмов
- •Блок-схемы алгоритмов
- •§1.3. Языки программирования
- •§1.4. Паскаль и Object Pascal, Турбо-Паскаль и Delphi
- •Контрольные вопросы
- •Язык, оболочка и интегрированная среда разработки
- •Часть 2. Общие сведения о языке Паскаль §2.1. Алфавит и служебные слова
- •Описание общих конструкций языка
- •§2.2. Структура программы
- •§2.3. Разделы описаний Описание меток
- •Определение констант
- •Определение типов
- •Описание переменных
- •Контрольные вопросы
- •Часть 3. Простые типы данных Иерархия типов
- •§3.1. Целые типы
- •§3.2. Вещественные типы
- •§3.3. Логический тип
- •§3.4. Литерный тип
- •§3.5. Перечисляемый тип
- •§3.6. Диапазоны (интервальный тип)
- •Дополнительные типы в Delphi
- •Контрольные вопросы
- •Глава 4. Операторы языка Паскаль Выражения
- •§4.1. Оператор присваивания
- •§4.2. Ввод-вывод данных
- •§4.3. Составной оператор
- •§4.4. Пустой оператор
- •§4.5. Безусловный оператор перехода
- •§4.6. Условный оператор
- •§4.7. Оператор цикла с параметром for
- •§4.8. Оператор цикла с предусловием while
- •§4.9. Оператор цикла с постусловием repeat
- •§4.10. Оператор выбора case
- •Контрольные вопросы
- •Глава 5. Процедурное программирование §5.1. Функции
- •Параметры – значения
- •Параметры – переменные
- •Бестиповые параметры
- •§5.2. Процедуры
- •Правила использования подпрограмм
- •Рекурсия
- •Директивы
- •Процедурные типы
- •Пример использования подпрограмм
- •Контрольные вопросы
- •Глава 6. Структурированные типы данных
- •§6.1. Массивы
- •§6.2. Строки
- •§6.3. Записи
- •§6.4. Множества
- •Пример использования множеств
- •§6.5. Файлы
- •Установочные и завершающие операции
- •Операции ввода-вывода
- •Перемещения по файлу
- •Пример работы с файлом
- •Обработка ошибок ввода-вывода
- •Специальные операции
- •Пример объединения двух файлов
- •Текстовые файлы
- •Стандартные текстовые файлы
- •Файлы без типа
- •Контрольные вопросы
- •Глава 7. Динамические структуры данных §7.1. Динамические переменные
- •§7.2. Указатели
- •Работа с динамическими переменными
- •Пример двухсвязанного циклического списка
- •Указатели без типа
- •Контрольные вопросы
- •Глава 8. Низкоуровневые возможности Паскаля §8.1. Язык Ассемблер
- •§8.2. Доступ к аппаратуре Доступ к памяти
- •Доступ к портам ввода-вывода
- •Работа по прерываниям
- •Контрольные вопросы
- •Глава 9. Модули §9.1. Основные понятия
- •§9.2. Использование модулей
- •§9.3. Стандартные модули
- •§9.4. Модуль Crt
- •Работа с экраном в текстовом режиме
- •Работа с клавиатурой
- •Работа со звуком
- •§9.5. Модуль dos
- •§9.6. Графический режим монитора
- •Контрольные вопросы
- •Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования
- •Понятие объекта
- •§10.2. Свойства объектов
- •Раннее и позднее связывание
- •§10.3. Виртуальные методы
- •Конструкторы и деструкторы
- •§10.4. Динамические объекты
- •Скрытые поля и методы
- •Контрольные вопросы
- •Литература
Установочные и завершающие операции
Так как имя файловой переменной назначается произвольно по правилам языка, то, чтобы связать его с конкретным физическим файлом на внешнем носителе информации, используется процедура
Assign (<имя_файловой_переменной>,<строка>);
Здесь имя задается в разделе описания переменных, а строкой является внешнее имя файла с возможным указанием пути, например:
Assign (Fil, 'c:\document\myfile.txt');
Строка может быть и переменной, например, можно вводить имя файла с клавиатуры. В качестве строки могут выступать и имена внешних устройств, принятые в MS-DOS: PRN, CON и другие.
В общем случае над файлами можно производить только две операции – просмотр файла и создание файла, все остальные являются их производными. Поэтому существуют две различные процедуры
Reset (< имя_файловой_переменной >);
Rewrite (< имя_файловой_переменной >);
Первая предназначена для открытия файла для просмотра. То есть на внешнем устройстве ищется файл, образуется специальный системный буфер для обмена, буферная переменная устанавливается на начало файла, то есть на его нулевой элемент. При этом предполагается, что открываемый файл уже существует, в противном случае возникает ошибка.
Вторая выполняет аналогичные действия, но создает не существовавший ранее файл. Если же такой файл уже существует, то при выполнении этой процедуры файл без предупреждения очищается.
После завершения работы с файлом его необходимо закрыть, то есть выполнить операции, обратные выполняемым двумя предыдущими процедурами. Для этого предназначена процедура
Close (< имя_файловой_переменной >);
Хотя при завершении работы всей программы происходит автоматическое закрытие всех файлов, но использование этой процедуры является правилом хорошего тона. Более того, в некоторых случаях без нее не обойтись, например, при создании файла, а затем использовании из него данных.
Операции ввода-вывода
Это две процедуры, которые и реализуют действия по чтению информации из файла и записи ее в файл.
Read (<имя_файловой_переменной >,<список_ввода>);
Write (<имя_файловой_переменной >,<список_вывода>);
В отличие от других процедур, они могут вызываться с различным числом параметров, и эти параметры могут иметь различные типы (объектно-ориентированные процедуры).
Выполнение процедуры Read происходит, начиная с текущей позиции указателя файла. При этом последовательно читаются значения, содержащиеся в файле, и присваиваются очередной переменной из списка ввода. После каждого чтения указатель файла смещается на следующую позицию. Если указатель файла будет установлен на позицию, не содержащую информации, то есть будет достигнут конец файла, то возникает ситуация «конец файла», обнаруживаемая с помощью специальной функции EOF.
Так как файл может быть пустым, то есть не содержать ни одного компонента, то при циклическом чтении информации из файла необходимо использовать оператор цикла While.
Процедура Write имеет обратный смысл, позволяя записывать в файл информацию из программы. Первым параметром должна быть файловая переменная, открытая процедурой Rewrite. Далее должен идти список выражений, тип которых совпадает с базовым типом файла.
