
- •1. Постановка задачи:
- •Структура программы на Паскале
- •Классификация типов
- •Стандартные типы данных Логические типы Внутреннее представление
- •Операции
- •Целые типы Внутреннее представление
- •Операции
- •Стандартные функции и процедуры
- •Вещественные типы Внутреннее представление
- •Операции
- •Стандартные функции
- •Символьный тип
- •Порядковые типы
- •Алфавит языка
- •6.2. Идентификаторы
- •6.3. Константы
- •6.4. Выражения
- •6.5. Операции
- •Составной оператор
- •Оператор if выполняется так:
- •Оператор if может иметь сокращенную форму. Её синтаксис:
- •10.1. Процедура
- •10.2. Функция
- •10.3. Формальные и фактические параметры
- •10.3.1. Параметры-значения
- •Динамическая память
- •1. Объявление указателей
- •2. Выделение и освобождение динамической памяти
- •3. Процедуры и функции для работы с динамической памятью
- •Работа с файлами на языке программирования pascal. Типы файлов, команды для работы с файлами, типизированные, нетипизированные и текстовые файлы
- •Работа с файлами в языке Pascal. Файлы прямого доступа.
- •16. Графические возможности языка. Модуль Graph.
- •6.1. Массив
- •6.2. Строка типа string
- •6.3. Asciiz-строка
- •6.4. Запись
- •6.5. Множество
- •6.6. Файл
- •3.1. Алгоритмы обработки массивов
- •3.2. Ввод-вывод элементов одномерного массива
- •3.3. Вычисление суммы элементов массива
- •3.4. Вычисление произведения элементов массива
- •3.5. Поиска максимального элемента в массиве и его номера
- •3.6. Сортировка элементов в массиве
- •3.6.1. Сортировка методом "пузырька"
- •3.6.2. Сортировка выбором
- •3.6.3. Сортировка вставкой
- •3.7. Удаление элемента из массива
- •3.8. Примеры алгоритмов обработки массивов
- •20.Алгоритмы обработки массивов: алгоритмы на двумерных массивах.
- •21.Динамические структуры данных: очередь.
- •Занесение элемента в очередь
- •Извлечение элемента из очереди
- •Занесение элемента в стек
- •Извлечение элемента из стека
- •Абстрактные типы данных
- •Объекты и классы
- •Базовые принципы ооп
- •Пакетирование (инкапсуляция)
- •Наследование
- •Полиморфизм
- •Описание объектного типа
- •Иерархия типов (наследование)
- •Полиморфизм и виртуальные методы
- •Статические методы
- •Виртуальные методы
Работа с файлами на языке программирования pascal. Типы файлов, команды для работы с файлами, типизированные, нетипизированные и текстовые файлы
Файл – совокупность данных, записанная во внешней памяти под некотором именем.
В статье рассматриваются причины использования файлов в программах, написанных на языке программирования pascal, характерные особенности файлов, типы файлов, которые возможно создать, типизированные, нетипизированные и текстовые файлы, примеры их создания, описания, объявления, основные процедуры для работы с файлами.
{loadposition adsense2}
Причины использования
- оптимизация ввода большого количества данных
- файл данных может быть подготовлен другой программой
- не требуется присутствия пользователя при работе с файлом
Характерные особенности файлов
- имеет имя, одновременно можно работать с несколькими файлами
- состоит из компонентов одного типа (любого, кроме файлового)
- длина создаваемого файла при объявлении не указывается
Типы файлов:
По способу доступа
- последовательного
- прямого
По типу (логической структуре)
- текстовые
- типизированные
- не типизированные
Файл имеет
- логическое имя (из раздела var)
- физическое имя (на диске)
Команды
Assign (логическое имя, ‘ физическое имя ‘) установления соответсвия между логическим и физическим именами
Rewrite (логическое имя) – открытие файла для записи, перезапись
Reset (логическое имя) – открытие файла для чтения
Write (логическое имя, переменная которую записуют) – запись информации в файл
{loadposition adsense1}
Read (логическое имя, переменная которую записуют) – чтение информации из файла
Eof (логическое имя) – анализ признака конца файла. ( whilenoteof (f) do <оператор> - работа с файлом до последнего элемента)
Close (логическое имя) – закрытие файла
Rename (логическое имя, 'физическое имя') – переименование файла
Erase (логическое имя) – удаление файла.
Объявление файла
Var f:file of <тип>;
F:text; (текстовый файл)
Типизированные файлы
Это файлы строго определенного типа. Обычно состоят из записей.
Объявление
Typefilerec=record
…
End;
Var
F:file of filerec;
Для определения размера:
Sizeof (filerec)
Т.к. длина любого компонента файла постоянная, то это дает возможность организовать прямой доступ к любому компоненту по его порядковому номеру, поэтому эти файлы называют файлами прямого доступа.
Процедура seek (var f ; numrec : longint) устанавливает текущую длину переменной f на запись с номером numrec.
Для данных файлов существуют следующие операции:
Truncate (varf) – уничтожает все компоненты файла f, начиная с места текущего положения файлового показателя
Filepoz (varf):longint – возвращает для файла f текущую файловую позицию в виде значения типа longint;
Filesize (varf):longint – возвращает размер файла.
Seek (f, filesize (f)); - команда помещения позиции курсора в конец файла.
Нетепизированный файл
Объявление
Varuntypedfile:file;
Нетепизированный файл является файлом прямого доступа
Открытие
Rewrite (untypedfile, <длина записи>);
Или
Reset (untypedfile, <длина записи>);
Команды
Blockread (varf:file; varbuf; count:word); - процедура считывает из файла F некоторое число блоков в память, начиная с 1-го байта переменной buf. Параметр buf – любая переменная, используемая для извлечения информации из файла. Параметр count – задает число считывающих блоков
Blockwrite (varf:file; varbuf; count:word); - процедура записи в файл, переменные одинаковые с предыдущей командой.
Текстовые файлы
Данные файлы можно редактировать и просматривать с помощью обычного текстового редактора
Eoln (<имя файла>) – проверка, есть ли символы в строке.
Описание
Var <список имен переменных>:text;
Команды считывания информации:
Read (<имя файла>, <список параметров>);
Readln (<имя файла> , <список параметров>);
Создание строки:
Write (<имя файла>,<список выражений>);
Writeln (<имя файла>,<список выражений>);
Для дописывания в файл данных выполнить (вместо rewrite)
Append (<имя файла>);
Смысл последовательного доступа заключается в том, что в каждый
момент времени доступна лишь одна компонента из всей последователь-
ности. Для того, чтобы обратиться (получить доступ) к компоненте с
номером К, необходимо просмотреть от начала файла К-1 предшествующую компоненту. После обращения к компоненте с номером К можно обращаться к компоненте с номером К+1. Отсюда следует, что процессы формирования (записи) компонент файла и просмотра (чтения) не могут произвольно чередоваться. Таким образом, файл вначале строится при помощи последовательного добавления компонент в конец, а затем может последовательно просматриваться от начала до конца. Рассмотренные ранее средства работы с файлами обеспечивают после-
довательный доступ. TURBO PASCAL позволяет применять к компонентным и бестиповым файлам, записанным на диск, способ прямого доступа. Прямой доступ означает возможность заранее определить в файле блок, к которому будет применена операция ввода - вывода. В случае бестиповых файлов блок равен размеру буфера, для компонентных файлов блок - это одна компонента файла.