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

Кроме описанных выше файлов в Delphi применяется специальный вид файлов предназначенный в основном для работы с текстовой информацией. Этот тип файлов объявляется с помощью служебного слова TextFile, например:

Var f:TextFile;

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

Структура текстового файла

Логическую структуру текстового файла можно изобразить в виде следующей схемы:

Текстовый файл трактуется в Object Pascal как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой строки ставится специальный признак eoln (End Of LiNe - конец строки), а в конце всего файла - признак eof (End Of File - конец файла). Эти признаки можно протестировать одноименными логическими функциями (см. ниже). При формировании текстовых файлов используются следующие системные соглашения:

eoln - последовательность кодов #13 (cr) и #10 (lf);

EOF -КОД #26.

В Delphi 7 при создании межплатформенных приложений признаком конца строки считается один символ LF(#10).

Для доступа к записям применяются процедуры Read, ReadLn, write, writebn. Они отличаются возможностью обращения к ним с переменным числом фактических параметров, в качестве которых могут использоваться символы, строки и числа. Первым параметром в любой из перечисленных процедур должна стоять файловая переменная. Обращение осуществляется к дисковому файлу, связанному С Переменной Процедурой AssignFile.

Подпрограммы для работы с текстовыми файлами

Function Eoln(var F: TextFile): Boolean;

Тестирует маркер конца строки и возвращает True, если конец строки достигнут

Procedure Read(var F: TextFile; V1 [,V2,...,Vn ]);

Читает из текстового файла последовательность символьных представлении переменных Vi типа char. String, а также любого целого или вещественного типа, игнорируя признаки EOLN

Procedure ReadLn (var F: TextFile; [VI [, V2, ...,Vn]]);

Читает из текстового файла последовательность символьных представлении переменных Vi типа char, String, а также любого целого или вещественного типа с учетом границ строк

Function SeekEof(var F: Text): Boolean;

Пропускает все пробелы, знаки табуляции и маркеры конца строки eoln до маркера конца файла eof или до первого значащего символа и возвращает True, если маркер eof обнаружен

Function SeekEoln (var F: TextFile):

Boolean;

Пропускает все пробелы и знаки табуляции до маркера конца строки eoln или до первого значащего символа и возвращает True, если маркер обнаружен

Procedure Write(var F: Text; PI [,P2,..., Pn] ) ;

Записывает символьные представления параметров Pi в текстовый файл

Procedure WriteLn (var F: Text; [PI [, P2, ..., Pn]]);

Записывает символьные представления параметров Pi и при знак конца строки eoln в текстовый файл

Контрольные вопросы

1.      Назовите основные отличия текстовых файлов от типизированных файлов.

2.      Назовите основные процедуры и функции, предназначенные для работы с текстовыми файлами.

 

На главную

Используются технологии uCoz