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

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

Эти файлы используются при обработке разнообразной текстовой информации: исходной и результатной. Их специфика – в следующем:

1. текстовый файл можно создавать программным способом или с

помощью текстового редактора, с клавиатуры.

2. содержимое текстового файла рассматривается как

последовательность строк переменной длины, но не более 128

символов;

3. строки разделяются специальным маркером <CR>-

<LF> («возврат каретки» - «прогон строки») или, иначе, признаком

EOLN (End Of LiNe - «конец строки»); при создании файла

программой он формируется процедурой WRITELN, а с

клавиатуры – нажатием клавиши «ENTER»;

4. конец файла обозначается признаком EOF (End Of File – «конец

файла»); при создании файла программой он формируется

процедурой CLOSE, а с клавиатуры – «Ctrl+Z»;

5. обработка текстового файла производится построчно и строго

последовательно, начиная с первой строки;

6. для одного текстового файла одновременно производить операции

ввода-вывода компонент (строк) нельзя. Для смены характера

работы с текстовым файлом следует заново открыть его.

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

Операции открытия и закрытия выполняются обычным порядком, как и для типизированных файлов. При этом используются процедуры ASSIGN, RESET, REWRITE и CLOSE.

Кроме того, для открытия ранее созданного текстового файла применима процедура

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

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

Ввод-вывод компонент может производиться с помощью процедур READ и WRITE. Однако следует помнить, что при работе с текстовым файлом можно иметь дело только с символьной информацией. Поэтому при записи в текстовый файл значения других типов будут преобразовываться в символьное представление. А при чтении из текстового файла очередная часть текущей строки будет пониматься как символьное представление значения, тип которого определяется типом очередной переменной из процедуры READ. Разделителями символьных представлений значений служат пробелы и признаки конца строки или файла.

Дополнительно при работе с текстовыми файлами используются две модифицированные процедуры ввода-вывода:

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

Она идентична READ, но после считывания последней переменной из списка (символов, чисел, строк) оставшаяся часть строки до маркера EOLN пропускается, и новое чтение осуществляется с новой строки (курсор будет перемещен туда!).

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

Эта процедура идентична WRITE, но после записи последней переменной из списка записываемая строка помечается маркером <CR>-<LF> (EOLN), и производится переход к следующей строке текстового файла.

(Вспомним, процедура READ автоматически осуществляет переход к

следующей строке только после того, как текущая строка

будет исчерпана! Аналогично по WRITE.)

Для контроля конца файла обычным порядком может использоваться функция EOF, а для контроля конца текущей строки – специфическая функция:

EOLN[(<имя файловой переменной>)] – она возвращает TRUE, если обнаружен признак <CR> (EOLN – «конец строки»); иначе - возвращается FALSE.

При работе с текстовыми файлами не применима процедура SEEK, т.к. длина компонентов-строк – неопределенная. Но имеются альтернативные функции поиска конца или строки, или файла:

SEEKEOLN[(<имя файловой переменной>)] – она пропускает все символы-разделители (пробелы и символы табуляции) и ищет конец текущей строки: если обнаружен такой признак, то возвращается TRUE; если обнаружен любой значащий символ, то возвращается FALSE.

SEEKEOF[(<имя файловой переменной>)] – она также пропускает все символы-разделители и, дополнительно, признаки конца строк, но ищет конец файла; если он обнаружен – возвращается TRUE, иначе – FALSE.

Примечание: если указанные функции используются без имени в

скобках, то по умолчанию подразумевается

стандартный файл INPUT.