Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции над файлами




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

Несмотря на всё многообразие языков программирования, в них реализуется некоторое общее множество файловых операций:

1) Открытее файла: выполнение этой операции предполагает набор вспомогательных действий, подготавливающих файл к использованию:

1. Поиск файла на носителе.

2. Образование системных буферов для обмена данными с файлом.

3. Инициализация и установка указателя текущей позиции (обычно установка на начало файла).

4. Чтение первого блока в буфер.

2) Чтение, запись: выполняется отображение логических номеров блоков в физические.

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

4) Закрытие файла: Выполнение вспомогательных действий, обратных по смыслу действиям, выполняемым при открытии файла.

При выполнении всех перечисленных операций программист имеет дело с логическим представлением файла.

 

 

В конкретном языке можно выделить 2 уровня файловой системы:

1. физический файл – описывается символьной строкой (полное имя файла)

2. логический файл – описывается переменной файлового типа.

Двоякое представление файла:

 

Рассмотрим набор файловых операций для Pascal:

Операции с файлами можно разбить на 4 группы:

1. установочные и завершающие операции

2. операции ввода-вывода

3. операции перемещения по файлу (позиционирования указателя)

4. специальные операции

 

1. Установочные и завершающие операции: 5 операций, которые реализуются соответствующими процедурами.

Замечание: Все файловые операции в Pascal реализуются стандартными процедурами и функциями, но не операторами. Такой подход принят в большинстве современных языков: ядро языка не включает поддержку файловых операций (т.к. они сильно привязаны к ОС).

а) Процедура, связывающая файловую переменную с физическим файлом (но не открывает файл): Assign (F,имя_физического_файла);

б) Reset (F) - Открытие файла

в) Rewrite (F) - Открытие файла

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

Revrite открывает новый (несуществующий) файл, т.е. позволяет создать файл на носителе и устанавливает указатель на начало.

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

Если процедура Rewrite, применена к существующему файлу, то содержимое файла удаляется (его длина становится=0).

г) Функция Flush (F); опорожняет буфер и выводит содержащиеся там данные на устройство. Пример применения: вывод данных на принтер ‘LPT:’- в качестве выходного физическогофайла.

д) Операция Close (F); закрывает файл (освобождает логическую файловую переменную).

 

2. Операции ввода-вывода: (2 операции)

Write (F,p1,p2,…);

Read (F,p1,p2,…);

Здесь переменное число параметров. Возможно наличие параметров разных типов, но должно соблюдаться соответствие типов параметров типам элементов файла.

Для текстовых файлов параметры могут быть разнотипными. Приведённые процедуры предназначены для работы со всеми типами файлов.

Если F не указано, то по умолчанию:

Write (output(default),p1,p2,…);

read (input(default),p1,p2,…);

Совместно с процедурами write и read можно использоваться логическая функция EOF (F); - позволяет определить конец файла.

 

3. Перемещение по файлу (позиционирование указателя) – 2 процедуры:

Seek (F,p); - позволяет установить указатель в файле на нужную позицию, р – номер позиции в файле.

Truncate(F); - объявляет текущую позицию указателя последней (концом файла), т.е.отсекает часть файла от текущей позиции до конца.

Ф-ция b=FilePos(F); - позволяет узнать текущую позицию указателя. (b типа boolean)

S=FileSize(F); - возвращает размер файла в элементах.

 

4. Специальные операции:

Это группа операций предназначена для выполнения действий над элементами файловой системы.

Erase(…) – стирание файла

Rename(…) – переименование

ChDir(…) – установка каталога по умолчанию

MkDir(…) – создание каталога

RmDir(…) – удаление каталога

 

Пример работы с файлами:

1. Программа, создающая целочисленные файлы и записывающая в них данные:

Program WriteFile (input,output);

Var

F: file of integer;

AR:array [1..10] of integer;

i: integer;

begin

for i:=1 to 10 do AR[i]:=i-1;

//связываем логический и физический файлы

Assign(F,’int_file.dat’);

//открываем файл

Rewrite(F);

//записываем в файл значения элементов массива

For i:=1 to 10 do write(F,AR[i]);

//закрываем файл

Close(F);

End.

2. Программа, модифицирующая файл, созданный в предыдущем примере:

// описания переменных те же, что и в 1.

AR[8]:=20;

Assign(F,’int_file.dat’);

//открытие файла для его модификации

Reset(F);

//процедура установки указателя в файле на элемент номер 7

Seek(F,7);

Write(F,AR[8]);

//устанавливаем указатель на последний элемент файла

Seek(F,FileSize(F)-1);

Write(F,AR[8]);

Close(F);

End.

3. Программа чтения целочисленного файла произвольной длины:

Var

F:file of integer;

i,v,c: integer //вспомогательные переменные

begin

Assign(F,’int_file.dat’);

Reset(F);

c:= FileSize(F);

for i:=1 to c do

begin

Read(F,v); //читаем очередную запись

Write(v); //печатаем её

End;

Close(F);

End.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1223; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.02 сек.