- •Содержание
- •Раздел 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-памяти
- •Управление оверлейным буфером
- •Литература Основная и дополнительная литература
- •Перечень наглядных пособий, методических указаний, методических материалов и используемых в учебном процессе технических средств
Процедура SetTextBuf (f, Buf [, Size])
Процедура SetTextBuf (F, Buf [, Size]) – определяет буфер для текстового файла.
Процедуру следует вызывать после процедуры Assign, но до других процедур ввода-вывода. Здесь F – имя текстового файла, Buf – любая переменная (в качестве формального параметра используется параметр-переменная без типа), Size – необязательное выражение типа Word.
Обмен информацией между программой и внешним набором данных осущетвляется через буфер ввода-вывода. Это участок оперативной памяти. Размер стандартного буфера ввода-вывода, принятый по умолчанию, – 128 байт. Каждому открытому файлу назначается свой буфер.
Процедуры Write и Writeln записывают очередные элементы файла последовательно в буфер. После того, как буфер будет полностью заполнен, произойдет физическая запись содержимого буфера во внешний файл. После этого буфер освобождается для приема следующей порции информации.
Аналогично при чтении. Из внешнего файла одновременно считывается количество элементов, помещающееся в буфер. Процедуры Read и Readln читают элементы последовательно из буфера.
Использование буфера ввода-вывода позволяет существенно повысить скорость обмена информацией с внешними файлами (например, за счет уменьшения времени перемещения магнитных головок в дисководах).
Операции обмена данными через буфер ввода-вывода осуществляет специальный обработчик файлов (для каждого файла имеется свой обработчик файлов, он назначается при открытии файла).
Для большинства прикладных программ размер стандартного буфера ввода-вывода (128 байт) оказывается достаточным. Однако, если в программе имеется большое количество операций ввода-вывода, то более эффективным оказывается использование буфера большего размера, так как это позволяет сократить время обращения к внешним наборам данных.
Процедура SetTextBuf назначает текстовому файлу F свой буфер ввода-вывода, определяемый параметром Buf. Размер буфера в байтах определяется параметром Size.
Если параметр Size опущен, то по умолчанию размер буфера принимается равным Sizeof (Buf), то есть вся область памяти, занимаемая параметром Buf, используется как буфер. Если параметр Size не опущен, он не должен превышать размеры переменной Buf.
Процедуру SetTextBuf нельзя применять к открытому файлу (она должна применяться после процедуры Assign и до процедур Reset, Rewrite или Append).
Процедура SetTextBuf определена только для текстовых файлов.
Пример 5.9.
Назначение буфера ввода-вывода текстовому файлу F. Передача данных из файла F в стандартный текстовый файл Output
Var
F: Text;
C: Char;
Buf: Array [1..10240] Of Char; {Буфер размером 10 килобайт}
Begin
Assign (F, ’A:\MET\Metod.txt’);
SetTextBuf (F, Buf); {Назначение буфера ввода-вывода Buf
текстовому файлу F. Размер буфера равен
размеру переменной Buf – 10240 байт }
Reset (F);
While Not Eof (F) Do {Цикл чтения из файла F и записи в файл
Output}
Begin
Read (F, C);
Writeln (C);
End;
…
Процедура Flush (f)
Процедура Flush (F) – очищает буфер текстового файла, открытого для вывода процедурой Rewrite или Append. По данной процедуре информация из буфера, независимо от степени его заполнения (заполнен он полностью или частично), записывается во внешний файл.
Данная процедура используется редко в прикладных программах – для очень важных результатов, если нужно подтверждение о физической записи во внешний файл. Процедура определена только для текстовых файлов.
Функция Eof (F)
Функция Eof (F) – конец файла.
Рассмотрена ранее при рассмотрении файлов с типом (см.подразд. 5.3).
Функция Eoln (F)
Функция Eoln (F) – конец строки.
Рассмотрена в начале данного подраздела.
Функция Seekeof (F)
Функция Seekeof (F) – устанавливает файл F в состояние “конец файла”.
Аналогична функции Eof, но пропускает все пробелы, метки табуляции и маркеры конца строки. Обычно может использоваться при считывании числовых значений из текстового файла.
Определена только для текстовых файлов. Файл должен быть открыт.
Функция Seekeoln (F)
Функция Seekeoln (F) – устанавливает файл F в состояние “конец строки”.
Аналогична функции Eoln, но пропускает все пробелы и метки табуляции. Используется при считывании существующего текстового файла числовых данных.
Определена только для текстовых файлов. Файл должен быть открыт.