- •59. Модули
- •58. Процедуры и функции пользователя
- •56. Операторы цикла с предусловием (while)
- •52. Оператор безусловного перехода
- •49. Для обмена информацией между пользователем и пк все данные организуются в файлы.
- •48. Процедуры и функции для работы с типизированными файлами.
- •47. Типизированные файлы
- •46. Файлы
- •43. Объединение разнородных элементов (Запись)
- •42. Типы данных
- •41. Определение множества
- •40. Множество — тип и структура данных в информатике, является реализацией математического объекта множество.
- •35. Одномерные массивы. Формирование и вывод одномерных массивов
- •30. Символьный тип
- •29. Арифметические операции
- •28. Вещественный тип данных
- •25. Раздел описания констант в языке Турбо Паскаль
- •23. Структура программы на языке Pascal
- •22. Понятие языка программирования
46. Файлы
|
45. Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип Text:
var
F: text; {F - файловая переменная}
Каждая строка завершается маркером конца строки. На практике такой маркер представляет собой последовательность из двух символов: перевод строки chr(13) и возврат каретки chr(10). Эти два символа задают стандартные действия по управлению текстовыми файлами. Открываемые по умолчанию стандартные файлы Input и Output в модуле System имеют тип Text. У текстовых файлов есть своя специфика. Специальные расширения стандартных процедур чтения (Read) и записи (Write) разрешают работать со значениями несимвольного типа. Другими словами, последовательность символов автоматически преобразуется к значению того типа переменной, которая используется в файловых операциях.
Вызов Read(F, Ww), где Ww – переменная типа word, осуществляет чтение из файла F последовательности цифр, которая затем интерпретируется в число, значение которого и будет присвоено переменной Ww. В случае если вместо последовательности цифр идет любая другая последовательность символов, использование такого оператора приводит к ошибке выполнения программы. Открытие текстового файла можно произвести двумя стандартными способами:
- поставить в соответствие файловой переменной имя файла (процедура Assign), открыть новый текстовый файл (процедура Rewrite);
- поставить в соответствие файловой переменной имя файла (процедура Assign), открыть уже существующий файл (процедура Reset).
Текстовый файл в силу своей специфики во время работы допускает только один вид операции: чтение или запись. В связи с этим для работы с текстовыми файлами используется еще одна процедура открытия файла:
Append(vaг F : text);
Эта процедура открывает уже существующий файл и позиционирует указатель обработки на конец файла. После этого в текстовый файл можно только добавлять информацию, причем только в конец файла. На процедуру Append накладываются те же ограничения, что и на процедуры Reset и Rewrite.
Для обработки текстовых файлов используются процедуры Read и Write, обеспечивающие соответственно чтение и запись одной строки и более в текстовый файл. Использование специальных разделителей строк позволило ввести в состав языковых средств еще две процедуры: Readln, выполняющую те же действия, что и Read, и дополнительно – чтение до маркера конца строки и переход к новой строке; Writeln, обеспечивающую запись всех величин с обязательной установкой маркера конца строки в файл.
Процедура Read обеспечивает ввод данных общим потоком из одной строки, a Readln приводит к обязательному переходу к следующей строке текстового файла, т. е. ввод данных осуществляется из различных строк. Все вышесказанное в равной мере относится к операциям записи с помощью процедур Write и Writeln.
При организации операций ввода-вывода используются специальные языковые средства в виде функций Eoln, Eof, SeekEoln, SeekEof.
Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) вернул значение True. Во всех остальных случаях значение функции будет False.
Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False – в противном случае.
Функция SeekEoln(var F: text) возвращает булевское значение True при достижении маркера конца строки, причем указатель файла пропускает все пробелы и знаки табуляции, предшествующие маркеру. В противном случае функция возвращает значение False.
Функция SeekEof(var F: text) возвращает значение True, если указатель файла находится на маркере конца файла. Эта функция также пропускает все пробелы и знаки табуляции, предшествующие маркеру, и выполняет автоматический пропуск маркера конца строки. Характерным примером использования этих функций может служить чтение числовых величин из текстового файла, когда необходимо пропустить обработку разделяющих эти числа пробелов или знаков табуляции.
44. Файл - либо именованная область памяти на внешнем носителе информации (винчестер, дискета, CD-диск и т.д.), либо логическое устройство представляющее источник или приемник информации (клавиатура , дисплей, принтер, порты и т.д.). Под файлом можно понимать любой набор данных.
Например: Программа - исходная, откомпилированная, и т.д. Данные – исходные, промежуточные, результирующие, рисунок, текст, график, аудио- видео и т.д. ).
Характеристики файлов
Файл имеет имя.
Размер.
Файл имеет атрибуты.
Дату и время создания.
Файлы бывают различных типов.
Имена файлов
Существуют следующие имена файлов:
Файловые переменные - это имена, которые используются программой на Паскале.
Дисковые файлы - это имена, под которыми файлы хранятся на диске и используются операционными системами.
Имена логических устройств - представляющие имена стандартных (аппаратных) логических устройств.
Имена файловых переменных. Определяются по правилам Паскаля.
Имена логических устройств. Существуют следующие имена логических устройств:
CON – консоль (клавиатура/дисплей); LPT1, LPT2, LPT3 - принтеры (параллельные порты); PRN – синоним LPT1; COM1 и COM2 – коммуникационные, последовательные порты; AUX синоним COM1; NUL - фиктивное устройство. Связывает файл с фиктивным устройством. При попытке ввода сразу сообщает о конце файла, а при выводе не выполняет никаких действий (оно м..б. использовано при отладке программы);
CLOCK$ - системные часы.
Имена дисковых файлов. Имя содержит от 1 до 8 разрешенных символов, т.е. букв, цифр и специальных символов:_ - $ # & @ ! % ’ ^ ( ) { } . Имя начинается с любого символа. За именем может следовать расширение, которое содержит от 1 до 3 символов, и отделяется от имени точкой. Расширение, как правило, характеризует разновидность файла. В табл.1 приведены примеры расширений некоторых файлов.