- •Лекция 1. Основы языков программирования.
- •Лекция 2. Способы записи алгоритмов.
- •Лекция 3. Знакомство с языком Паскаль.
- •Лекция 4. Структура программы на языке Паскаль.
- •Лекция 5. Стандартные типы данных.
- •5.1 Целые типы
- •5.2 Вещественные типы
- •5.3 Символьный тип.
- •5.4 Ограничительные типы.
- •5.5 Перечислимые типы.
- •Л.6. Операторы языка Паскаль Ввод исходных данных.
- •Расчет.
- •Стандартные функции Турбо Паскаля
- •Стандартные процедуры
- •Константы
- •Вывод результатов
- •Лекция 7. Операторы условий if, case
- •7.1 Оператор безусловного перехода
- •7.2 Условный оператор
- •7.3 Оператор варианта
- •Лекция 8. Операторы цикла for, while, repeat
- •8.1 Оператор цикла с предусловием.
- •8.2 Оператор цикла с постусловием.
- •8.3 Оператор цикла с параметром.
- •Лекция 9. Одномерные и двумерные массивы.
- •Работа с массивами
- •Инициализация элементов массива
- •Лекция 10. Процедуры и функции в Паскаль.
- •Лекция 11. Параметры в процедурах.
- •11.1 Механизм параметров.
- •11.2. Параметры - значения.
- •11.3. Параметры - переменные.
- •11.4. Безтиповые параметры.
- •Лекция 12. Типы данных, определяемые пользователем. Записи.
- •Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
- •13.1 Файловые типы
- •13.2 Операции ввода-вывода Write, Read
- •13.3. Перемещение по файлу.
- •13.4 Обработка ошибок ввода - вывода
- •13.5 Текстовые файлы
- •13.6 Файлы без типа.
- •Лекция 14. Модули и внешние файлы в Паскаль.
- •15.1. Компиляция и использование модулей
- •15.2. Компиляция и поиск модулей.
- •15.3. Стандартные модули
- •Лекция 15. Динамические структуры данных.
- •15.1 Ссылочные типы и указатели.
- •15.2 Статические переменные.
- •15.3. Создание и удаление динамических переменных.
- •15.4. Установка размеров динамической памяти.
- •Лекция.16. Графические возможности языка Паскаль.
- •Лекция17. Практическое применение языка Паскаль в решении технологических и экологических задач
13.5 Текстовые файлы
Паскаль имеет средства взаимодействия с файлами несколько иной структуры - текстовыми файлами. Структура текстовых файлов отличается от структуры обычных файлов (линейная последовательность элементов одного типа) тем, что содержимое текстового файла рассматривается как последовательность символьных строк переменной длины, разделенных специальной комбинацией, называемой 'конец строки', 'перевод каретки' (#B), за которым возможно следует перевод строки (#10). Текстовый файл завершает специальный символ (#26).
Текстовый файл объявляется так:
Var
TextInf : text;
Для текстовых файлов применимы те же самые операции инициализации, открытия и закрытия, что и для обычных файлов. За исключением того, что reset открывает файл только для чтения, rewrite - для его обновления.
Дополнительно для текстовых файлов определены следующие операции:
Append - один параметр - файловая переменная. Аналогична rewrite, но не очищает файл, а добавляет новые строки в конец уже существующего файла.
SetTextBuf - процедура, определяющая буфер для обмена с текстовым файлом.
SetTextBuf (var f: text; var Buf; Size :word);
Операции ввода - вывода это read, write. Здесь необходимо помнить, что текстовый файл по определению содержит символьную информацию, поэтому при записи значения других типов будут преобразовываться в символьное представление. Для текстовых файлов имеется две модификации - процедуры Readln, writeln. Выполняют те же действия, что и read, write, но после операции чтения и записи производится переход к следующей строке текстового файла.
Для текстовых файлов неприменима процедура seek ввиду произвольных длин строк. Для решения задач перехода используются функции SeekEoln и SeekEof - с файловой переменной.
SekEoln - производит поиск конца текущей строки и возвращает true
SeekEof - осуществляет поиск конца файла, либо первого значащего символа. True - конец файла, false - в ином случае.
13.6 Файлы без типа.
Объявляются как:
Var
Data : file;
Понятие не типизированных файлов используется для организации доступа к любым дисковым файлам независимо от их структуры. При этом файл представляется как последовательность символов произвольного типа; единственное, что оговаривается - это размер элементов.
Не типизированные файлы открываются теми же процедурами, что и обычные текстовые файлы, - reset, rewrite, но для не типизированных файлов вторым параметром этих процедур должен быть задан размер записи.
Assign(data, 'Mydata.dta');
Reset (data, 200);
Размер записи задается в байтах.
Для организации обменов с не типизированными файлами предназначены две стандартные процедуры: BlockRead, BlockWrite.
В качестве рабочего буфера для обменов используется переменная, которую необходимо описать в программе и размер которой не должен быть меньше размера записи, установленной в параметрах reset, rewrite.
BlockRead (var f: file; var Buf; Count :word);
BlockRead (var f:file; var Buf; Count: word; var Result : word);
F - имя не типизированного файла, из которого производится чтение ;
Buf - переменная - буфер;
Count - число записей читаемых за один вызов;
Result - число фактически прочитанных записей.
Аналогично описывается стандартная процедура BlockWrite. В обеих процедурах нужно следить за тем, чтобы переменной буфера buf был равен RecSize* Count, где первое - это размер записи указанной в процедуре reset или rewrite и второе - число читаемых - записывающих записей.
