Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на устные вопросы.doc
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
860.16 Кб
Скачать

Вопрос 29. Текстовые файлы в t. P. Процедуры для работы с текстовыми файлами.

Текстовые файлы предназначены для хранения текстовой информации. Текстовый файл трактуется в Турбо Паскале как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Для описания текстовых файлов используется предопределенный тип Text.

Переменные этого типа удобнее описывать в программе явно в разделе переменных Var

var <имя файловой переменной> : Text;

При создании текстового файла в конце каждой записи (строки) ставится специальный признак конца строки. Данный признак представляет собой последовательность из двух символов кода ASCII – символа с кодом #13 («возврат каретки») и символа с кодом #10 («перевод строки»). Для определения конца строки используется функция EOLN (end of line).

Формат обращения к функции в программе:

EOLN (<имя файловой переменной>);

Данная функция принимает значение True, если достигнут конец строки, и значение False в противном случае.

В конце всего файла ставится признак конца файла. Данный признак представляет собой символ кода ASCII – символ с кодом #26. Для определения конца файла используется функция EOF (end of file).

Формат обращения к функции в программе:

EOF (<имя файловой переменной>);

Данная функция принимает значение True, если достигнут конец файла, и значение False в противном случае.

Для доступа к компонентам текстового файла используются процедуры Read и Readln, Write и Writeln:

Процедура READ. Обеспечивает ввод символов, строк и чисел.

Формат вызова процедуры в программе:

READ (<имя файловой переменной>, <список параметров>);

или

READ (<список параметров>);

Список параметров – это последовательность из одной или более переменных типа char, string, а также для любого целого или вещественного типа.

При вводе переменных типа char выполняется чтение одного символа из файла и присваивание считанного значения переменной. Если перед выполнением чтения указатель файла достиг конца очередной строки, то результатом чтения будет символ CR (ASCII код #13), а если достигнут конец файла, то символ EOF ( код #26). При вводе с клавиатуры символ CR вводится при нажатии на клавишу Enter, а символ EOF – при одновременном нажатии клавиш CTRL и Z.

При вводе переменных типа string количество считанных процедурой и помещенных в строку символов равно максимальной длине строки, «лишние» символы до конца строки отбрасываются, а новое обращение к Read возвращает пустую строку. Таким образом, процедура Read не в состоянии прочесть последовательность строк: первая строка будет прочитана нормально, а все последующие окажутся пустыми. Для ввода последовательности строк нужно использовать процедуру Readln.

Процедура READLN. Обеспечивает ввод символов, строк и чисел. Эта процедура идентична процедуре Read, за исключением того, что после считывания значения последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к Readln или Read начинается с первого символа новой строки.

Процедура WRITE. Обеспечивает вывод информации в текстовый файл или передачу ее на логическое устройство.

Формат вызова процедуры в программе:

WRITE (<имя файловой переменной>, <список параметров>);

или

WRITE (<список параметров>);

Список параметров – это последовательность из одного или более выражений типа char, string, boolean, а также для любого целого или вещественного типа. 4. Процедура WRITELN. Идентична процедуре Write за исключением того, что выводимая строка символов завершается кодами CR и LF. При вызове Writeln можно опускать <список параметров>: в этом случае в файл передается маркер EOLN, что при выводе на экран приведет к переводу курсора в начало следующей строки.

Процедура APPEND. Открывает ранее существующий текстовый файл для добавления данных в конец файла. При этом указатель файла устанавливается в его конец. Если текстовый файл уже был открыт с помощью процедур Reset или Rewrite, использование процедуры Append приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.

Формат вызова процедуры в программе:

APPEND (<имя файловой переменной>);