Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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

Типизированные файлы с прямым доступом.

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

Прямой доступ предполагает непосредственный выход на нужную компоненту в файле. Для этого необходимо только увязать номер компоненты со значением реквизита-признака, по которому ведется поиск. Этот признак (или их совокупность) называют ключом поиска.

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

После инициализации достаточно обновить файл путем занесения в него требуемых информационных компонент в режиме прямого доступа с применением пары стандартных процедур SEEK и WRITE:

 

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

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

 

В этом случае сначала указатель устанавливается на нужную компоненту, а затем происходит ее наполнение заранее подготовленным конкретным содержанием.

 

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

При обработке информации в режиме прямого доступа чтение нужной компоненты (записи) по аналогии выполняется парой стандартных процедур SEEK и READ:

 

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

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

 

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

 

Замечание: файл с прямым доступом обеспечивает очень быстрый

выход на нужную компоненту. Однако он получается более

длинным, чем аналогичный файл с последовательным

доступом, т.к. включает компоненты с полезной

информацией и фиктивные. Поэтому использовать его

следует осторожно и тогда, когда количество фиктивных

компонент получается существенно меньше тех, которые

содержат конкретную информацию для обработки.

 

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

- добавление в конец файла (обычным порядком);

- обновление (часть полей в записи меняет свое содержание);

- замена старых компонент на новые (меняется содержимое всей

компоненты);

- вставка новых компонент в середину файла (в нужном месте

фиктивные компоненты наполняются полезной информацией и

становятся новыми реальными компонентами);

- удаление (ненужные компоненты с полезной информацией

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

нулями).

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

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

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.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.