Текстовые файлы

На персональных компьютерах значительное количество информации обрабатывается в виде текстов, хранящихся в текстовых файлах. Их структура отличается от структуры обычных файлов тем, что содержимое текстового файла рассматривается как последовательность символьных строк переменной длины, разделенных комбинацией символов, называемой «конец строки». Эти файлы завершаются специальным кодом «конец файла».

Знание конкретной кодировки управляющих символов не обязательно, так как они автоматически учитываются при выполнении операций над текстовыми файлами, но это и обеспечивает специфику данного вида файлов.

Файлы, имеющие такую структуру, имеют стандартный тип:

Type <имя_типа> = text;

Var < имя_файловой_переменной >: text;

и имеют в своем составе элементы литерного типа, которые включают управляющие символы.

Набор операций, применимых к текстовым файлам, содержит, кроме операций для обычных файлов, следующие. К начальным операциям добавлена процедура

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

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

Так же используется процедура SetTextBuf, определяющая буфер для обмена с текстовым файлом, здесь не рассматривается.

В операциях, связанных с вводом-выводом, помимо процедур Read и Write, имеются две их модификации:

ReadLn (< имя_файловой_переменной >[,<список_ввода>]);

WriteLn (< имя_файловой_переменной >[,<список_ввода>]);

Они выполняют аналогичные действия, но после операций чтения или записи производят переход к следующей строке текстового файла. Хотя операция Read и переходит автоматически к следующей строке после окончания текущей, но процедура ReadLn выполняет это принудительно, не дожидаясь окончания строки, то есть возможен пропуск данных.

При посимвольной обработке, чтобы проверить, достигнут ли конец текущей строки, используется функция EOLn (< имя_файловой_переменной>). Таким образом, типовая схема обработки текстового файла включает в себя двойной цикл. При чтении файла:

...

Assign (<имя_файловой_переменной >,<внешнее_имя_файла >);

Reset (<имя_файловой_переменной >); { Возможна обработка особых ситуаций }

While not EOF (<имя_файловой_переменной >) do

Begin

While not EOLn (<имя_файловой_переменной >) do

Begin

Read (<имя_файловой_переменной >,< символьная переменная >);

< операторы обработки символа >;

end;

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

end;

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

...

При создании файла:

...

Assign (<имя_файловой_переменной >,<внешнее_имя_файла >);

Rewrite (<имя_файловой_переменной >); { Возможна обработка особых ситуаций }

While < признак_окончания_файла > do

Begin

While <признак_окончания_строки> do

Begin

Write (<имя_файловой_переменной >,< символьная переменная >);

< операторы формирования символа >;

end;

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

end;

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

...


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: