
- •Содержание
- •Раздел 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-памяти
- •Управление оверлейным буфером
- •Литература Основная и дополнительная литература
- •Перечень наглядных пособий, методических указаний, методических материалов и используемых в учебном процессе технических средств
Функция Eof(f)
Функция Eof(F) (End Of File) – служит для определения факта выхода при чтении за пределы файла.
Функция Eof возвращает значение признака конца файла. Если достигнут конец файла F (окно указывает на маркер конца файла – позицию, следующую за последней компонентой файла), или если файл пустой, то значение функции Eof равно True. В противном случае функция Eof возвращает значение False.
Если значение функции Eof равно True, то использование процедуры Read недопустимо.
Если в заголовке функции Eof опущено имя файла, то предполагается файл Input. Например,
L := Eof;
Здесь L – переменная типа Boolean.
Обычно обработка компонент файла в программе организуется с помощью оператора цикла с предусловием. В качестве предусловия используется логическое выражение Not Eof(F), а в теле цикла ведется обработка компонент файла F.
Пример 5.3.
Чтение из файла. Пусть имеется набор данных Old.
Var
F2: File Of Char;
X: Char;
Begin
Assign (F2, ‘Old’);
Reset (F2);
While Not Eof (F2) Do
Begin
Read (F2, X);
<Операторы обработки переменной Х>
End
. . .
Процедура Seek (f, n)
Процедура Seek (F, N) – осуществляет прямой доступ к элементам файла F.
Здесь N – номер элемента файла. Элементы файла нумеруются последовательно, начиная с нуля.
N может быть положительным целым выражением типа Longint.
Процедура Seek позиционирует файл на указанный номер элемента, то есть устанавливает окно файла на указанный элемент.
Файл должен быть предварительно открыт.
Процедура Seek не производит операций ввода-вывода. Следующий за Seek вызов процедуры Read или Write оперирует со следующими по порядку элементами файла.
Текстовые файлы процедурой Seek не обрабатываются.
Пример 5.4.
Запись в файл F2 элементов файла F1, начиная с номера 100 (фактически это 101-ый элемент файла F1).
Var
C: Char;
F1, F2: File Of Char;
Begin
Assign (F1, ‘Old’);
Assign (F2, ‘New’);
Reset (F1);
Rewrite (F2);
Seek (F1, 100);
While Not Eof (F1) Do
Begin
Read (F1, C);
Write (F2, C);
End;
…
Функция Filepos (f)
Функция Filepos (F) – возвращает номер текущей позиции (окна) файла F. Если окно установлено на начало файла, то функция возвращает значение 0. Если окно установлено на конец файла (Eof(F) = True) , то функция возвращает значение, равное размеру файла (то есть результату функции Filesize (F)).
Тип результата функции Filepos – Longint.
Функция не может использоваться для текстовых файлов.
Файл должен быть предварительно открыт.
Функция Filesize(f)
Функция Filesize(F) – возвращает текущий размер файла (число элементов в файле). Тип результата – Longint. Для пустого файла возвращается значение 0.
Файл должен быть предварительно открыт.
Функция не может быть использована для текстовых файлов.
Пример 5.5.
Расширение файла F (добавление элементов в конец файла).
. . .
Seek (F, Filesize (F));
Write (F, C);
. . .
В данном примере процедура Seek помещает окно файла за последним элементом файла (функция Filesize возвращает количество элементов, но так как они нумеруются с нуля, то значение функции Filesize совпадает с номером следующей компоненты после последней).