Работа с файлом с использованием оперативной памяти

Эта технология может быть применена при обработке файлов относительно небольших размеров.

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

1. Исходя из количества записей, выделяется динамическая память под массив записей.

2. Записи файла переносятся в массив.

3. Над массивом записей в оперативной памяти выполняются требуемые действия (заполнение, добавление, удаление, корректировка), но реализуемые алгоритмами работы с массивом.

4. После окончания обработки массив записывается в новый файл (желательно, чтобы пользователь подтвердил сделанные изменения).

5. Принимается решение о варианте использования нового файла в совокупности с основным (переименование в основной файл, перепись в основной и удаление и т.д.).

Внимание! Только один этот вариант работы с файлами в лабораторных работах № 1 и № 2 использован быть не может. Необходимо применить варианты использования рабочего файла.

Особенности обработки текстовых файлов.

Текстовые файлы состоят из символов. Каждый текстовый файл разделяется на строки неопределенной длины, которые заканчиваются символом конец строки. Весь файл заканчивается символом «конец файла».

К текстовым файлам возможен только последовательный доступ. С текстовыми файлами работают различные редакторы текстов. Текстовые файлы имеют стандартный тип TEXT.

VAR

Имя_файла: TEXT;

Посимвольные операции ввода-вывода выполняются для текстовых файлов процедурами read и write.

Строки (логические записи)вводятся и выводятся специальными процедурами для текстовых файлов readlnиwriteln.  

Кроме того, для текстовых файлов применяются процедуры ASSIGN, RESET, REWRITE, CLOSE, EOF, eoln.

Процедура append открывает существующий текстовый файл для добавления записей.

Для текстовых файлов нельзя использовать процедуры и функции SEEK, FILEPOS, FILESIZE, т.к. элементы (записи текстового файла) имеют разную длину.

input и output стандартные текстовые файлы для ввода с клавиатуры и вывода на экран.

Рекомендация: при вводе/выводе преимущественно использовать процедуры READLN () и WRITELN ();

Пример

Рассмотрим программу, реализующую следующую задачу. Дан текстовый файл F1.Необходимо заменить во всех записях этого файла код группы ДКЕ-101 на ДКЕ-201. Скорректированные записи поместить в файл F2.

Var

f1,f2: text;

pole:string;

filename, filenam2:string[12];

pz: integer;

Begin

write(‘ввод имени входного файла:’);

readln(filename);

assign(f1, filename);

reset(f1); { без защиты }

write(‘ввод имени выходного файла:’);

readln(filenam2);

assign(f2, filenam2);

rewrite(f2);


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



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