- •Содержание
- •Раздел 1.Подпрограммы Общие сведения
- •Процедуры Описание процедур
- •Вызов процедур
- •Процедуры без параметров
- •Процедуры с параметрами
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры-переменные без типа
- •Параметры процедурного типа
- •Использование производных типов в качестве параметров подпрограмм
- •Принцип локализации имен
- •Функции Описание функций
- •Вызов функции
- •Рекурсивные подпрограммы
- •Директивы
- •Библиотечные модули пользователя Общие сведения
- •Структура модуля Unit
- •Особенности работы с модулями
- •Подключение к программе внешнего файла
- •Раздел 2.Простейший ввод-вывод Процедуры ввода из стандартного текстового файла Input
- •248 15 4 70 Значения 1-й строки
- •11 Значения 2-й строки
- •Процедуры вывода в стандартный текстовый файл Output
- •Раздел 3.Записи Структура записи
- •Записи без вариантной части
- •Записи с вариантами
- •Оператор присоединения With
- •Константа-запись
- •Раздел 4.Множества Общие сведения
- •Конструктор множества
- •Задание множественного типа
- •Операции над множествами
- •Ввод / вывод значения множественной переменной
- •Типизованные константы-множества
- •Раздел 5.Файлы Общие сведения
- •Процедура Assign
- •Файлы с типом
- •Процедура Assign
- •Процедура Rewrite (f)
- •Процедура Write (f, v1 [, v2, … , vn])
- •Процедура Reset (f)
- •Процедура Read (f, V [, v2, …, vn])
- •Функция Eof(f)
- •Процедура Seek (f, n)
- •Функция Filepos (f)
- •Функция Filesize(f)
- •Процедура Close (f)
- •Текстовые файлы
- •Процедура Assign (f, Name)
- •Процедура AssignСrt(f)
- •Процедура Append (f)
- •Процедура Rewrite (f)
- •Процедура Reset (f)
- •Процедура Read ([f,] v1 [, v2, …, vn])
- •Процедура Readln [([f] [,] [v1, v2, …, vn])]
- •Процедура Write ([f,] e1 [, e2, …, en])
- •Процедура Writeln([f,][e1,e2, …,en])
- •Процедура Close(f)
- •Процедура SetTextBuf (f, Buf [, Size])
- •Процедура Flush (f)
- •Сравнительная характеристика представления информации в файлах с типом и текстовых файлах
- •I. Представление числовой информации.
- •II. Представление текстовой информации.
- •Файлы без типа
- •Процедуры Reset и Rewrite
- •Процедура Blockread
- •Процедура Blockwrite
- •Проверка операций ввода-вывода
- •Раздел 6.Ссылочный тип (тип указатель) Общие сведения
- •Методы работы с динамическими переменными
- •Процедуры New и Dispose
- •Процедуры Getmem и Freemem
- •Процедуры Mark и Release
- •Раздел 7.Динамические структуры данных Динамические цепочки Структура динамической цепочки
- •Формирование цепочки
- •Поиск элемента в цепочке
- •Удаление элемента из цепочки
- •Вставка элемента в цепочку
- •Линейный однонаправленный список
- •Двунаправленные списки
- •Вставка элемента
- •Создание двунаправленного кольцевого списка с заглавным звеном
- •Удаление элемента
- •Поиск элемента
- •Очереди и стеки
- •Очередь lifo
- •Очередь fifo
- •Общие сведения
- •Способы организации таблиц
- •Однонаправленный список.
- •Однонаправленный список с упорядоченными записями.
- •Однонаправленный список с отдельным хранением текста записи.
- •Представление в виде массива.
- •Двоичное дерево.
- •Двоичные деревья Структура двоичного дерева
- •Построение дерева
- •Поиск записи в дереве
- •Включение записи в дерево
- •Удаление записи из дерева
- •Раздел 8.Оверлеи Общие сведения
- •Правила оформления оверлейных программ
- •Инициализация работы оверлеев
- •Включение администратора оверлеев
- •Обработка ошибок администратора
- •Размещение оверлейного файла в ems-памяти
- •Управление оверлейным буфером
- •Литература Основная и дополнительная литература
- •Перечень наглядных пособий, методических указаний, методических материалов и используемых в учебном процессе технических средств
Процедура Close (f)
Процедура Close (F) – предназначена для закрытия открытого файла F.
Для внешнего файла, связанного с файловой переменной F, полностью выполняется его обновление (остатки данных из буфера ввода-вывода заносятся в файл). Затем файл закрывается и может быть повторно использован.
Пример 5.6.
Определение размера файла. Закрытие файла.
…
Assign (F, ‘Old’);
Reset (F);
Write (‘Размер файла Old ’, Filesize (F)); {Вывод на экран размера файла}
Close (F);
…
Текстовые файлы
Текстовый файл представляет собой последовательность символов. Однако он не эквивалентен файлу типа
T = File Of Char.
Файл типа T – это единая последовательность символов.
Особенность текстовых файлов – то, что содержащиеся в них символы разбиваются на строки. Строки могут быть различной длины (и пустые). В конце каждой строки помещается специальный управляющий символ – маркер конца строки. Обычно это два управляющих символа: возрат каретки (#13 или ^M – международное обозначение CR) и перевод строки (#10 или ^J – международное обозначение LF).
С наличием этого маркера связана логическая функция Eoln (End Of Line).
Функция Eoln(F) принимает значение True, если окно (текущая позиция доступа) установлено на маркер конца строки, и False – в противном случае.
Текстовые файлы – это переменные типа Text.
Тип Text относится к предопределенным структурным типам. Переменные типа Text описываются c помощью указания имени типа:
Var
X, Y: Text;
Стандартные файлы Input и Output являются текстовыми файлами. Эти файлы в программе не описываются. В начале выполнения любой программы (если не ниспользуется модуль Crt) автоматически выполняются процедуры:
Assign (Input, ’’);
Assign (Output, ’’);
Reset (Input, ’’);
Rewrite (Output, ’’);
Для работы с текстовыми файлами определены следующие процедуры и функции ввода-вывода.
Процедура Assign (f, Name)
Процедура Assign (F, Name) – связывает файловую переменную с внешним файлом на диске. Описана в подразд. 5.2.
Процедура AssignСrt(f)
Процедура AssignСrt(F) – связывает текстовые файлы с Crt (с дисплеем).
Процедура аналогична процедуре Assign. Однако второй параметр Name в ней не используется.
Данная процедура определена в модуле Crt, который реализует более быстрый ввод-вывод по сравнению со стандартным вводом-выводом и с большими функциональными возможностями.
Пример 5.7.
Вывод текстового файла F на принтер или экран.
Uses Crt;
Var
F: Text;
K: (P, C); {К –признак вывода, P – принтер, С – Crt}
Begin
…
If K = P Then
Assign (F, ’Prn’)
Else
Assigncrt (F);
…
Процедура Append (f)
Процедура Append (F) – открывает существующий текстовый файл для добавления. Предварительно файл F должен быть связан с внешним файлом процедурой Assign.
Если не существует внешнего файла с указанным именем, то в результате выполнения процедуры Append возникает сообщение об ошибке ввода-вывода.
Если файл F уже был открыт, необходимо его предварительно закрыть.
В результате выполнения процедуры Append текущая позиция (окно) файла устанавливается в конец файла, на место маркера конца файла (#26 – код ASCII 26 или Ctrl-Z).
После вызова процедуры Append(F) файл F становится доступным только для записи, а значение функции Eof(F) всегда будет равно True.
Процедура Append определена только для текстовых файлов.