Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
933 Кб
Скачать
☆

13.1. Основные понятия

По типу организации файлы делят на 2 основных вида: последовательные и файлы с прямым (произвольным) доступом. Последовательными называют файлы, в которых для доступа к нужному фрагменту информации необходимо просмотреть всю предыдущую информацию. Примером таких файлов является информация, записанная на магнитной ленте. Этот носитель может хранить только последовательные файлы. Однако последовательная организация применяется и на носителях информации, где возможен произвольный доступ. Файлы с произвольным (random) доступом позволяют обратиться к нужным данным, не просматривая предыдущую информацию. Очевидно, что для нахождения нужного фрагмента эти данные должны иметь некий, отличающий их от других, признак (ключ). В качестве ключа могут использоваться: поле файла базы данных или их комбинация, закладка, гиперссылка.

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

В данном разделе будут рассмотрены средства работы с последовательными текстовыми файлами, как с наиболее распространенными и простыми. Такие файлы могут быть подготовлены обычными редакторами текстов, например: NotePad (Блокнот), WordPad. Для цели обмена информацией между приложением и внешней средой используется набор встроенных функций.

13.2. Описание файла

Правила описания файлов зависят от операционной системы (ОС), однако традиционно это описание имеет вид:

<имя файла>.< расширение>.

Пример.

квартплата.xls

В ОС Windows длина имени файла меньше или равна 255 символам и русские символы допустимы. Расширение часто называют типом файла, поскольку многие программы, их создающие, имеют расширения по умолчанию.

К ним относятся:

- doc – текстовый процессор MS Word (с версии 2007 и выше – docx);

- xls – табличный процессор MS Excel (с версии 2007 и выше – xlsx);

- c – исходный модуль языка C;

- cpp – исходный модуль языка C++;

- vb – общий модуль языка Basic;

- frm – файл экранной формы программы;

- obj | o – объектный файл;

- exe – выполняемый файл;

- txt – текстовый файл, подготовленный редактором NotePad или другим.

Заметим, что пользователь имеет возможность дать этим типам другое расширение. Трансляторы с языков C и C++ сохраняют предыдущую версию исходного текста программы в файле с расширением bak.

13.3. Открытие и закрытие файлов

Перед началом обмена данными с файлом выполняются операции :

- проверка наличия файла с данным именем при чтении;

- наличие свободного пространства на диске при создании файла;

- установка указателя файла на начало (позиционирование).

Этот процесс называют открытием файла. Как было показано выше в разделе 12, для обмена данными используются 3 стандартных потока. При открытии файла ОС присоединяет к нему свой индивидуальный поток (канал) передачи данных, который характеризуется целым числом, называемым дескриптором файла. В языке C функция открытия файла возвращает не дескриптор, а указатель на тип FILE, который представляет собой структуру, описанную в заголовочном файле stdio.h и содержащую в качестве элемента дескриптор файла. С каждым открытым потоком связан выделяемый ОС буфер передачи данных.

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

- возможна случайная порча открытого файла из-за программных ошибок;

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

- при аварийном завершении программы информация, хранимая в сис-темном буфере пропадает.