Лабораторная работа № 7
РАБОТА С ФАЙЛАМИ
Цель работы: Научиться пользоваться текстовыми файлами для сохранения результатов работы и чтения информации.
Основные теоретические положения
Файлы представляют собой именованные области внешней памяти, с которыми программы могут обмениваться информацией Иногда оперативной памяти недостаточен для хранения нужной информации и тогда приходится прибегать к услугам внешней памяти, записывая туда очередную порцию накопленных данных. В другой ситуации приложение может воспользоваться своими же данными, ранее записанными на диск или полученными в результате работы других программ.
Работа с файлами в основном ограничивается тремя-четырьмя операциями:
· Выделение ресурсов и приведение файла в состояние готовности к обмену (именно это скрывается за термином открыть файл);
· Чтение (ввод из файла) или запись (вывод в файл) очередной порции данных;
· Возврат выделенных ресурсов и завершение неоконченных операций (этому соответствует термин закрыть файл).
|
|
К числу наиболее важных моментов, связанных с обменом информацией, следует отнести формат представления данных на внешнем носителе. В большинстве своем почти все системы программирования (и MATLAB в этом смысле — не исключение) используют два формата данных — текстовые и двоичные.
Текстовые или символьные данные состоят из строк, похожих на те, которые мы набираем при вводе с клавиатуры или видим при выводе на экране дисплея. Для текстовых данных характерна переменная длина строки, завершающейся невидимым признаком конца (обычно эту функцию выполняют символы типа CR- возврат каретки, LF- перевод строки).
Подготовка файла к работе
Файлы открывают с помощью функции fopen, которая в случае удачного завершения вщзвращает целочисленный положительный идентификатор файла f_id (называемый номером файла). В простейшем варианте вызова указывается единственный входной аргумент – имя открываемого файла
f_id=fopen(‘name_file’);
Для получения дополнительной информации, поясняющей причину ошибки при открытии файла, используется второй параметр
[f_id err_txt]=fopen(‘name_file’);
В случае ошибки в переменную err_txt будет занесено соответствующее сообщение. Если указанный файл обнаружен, тоон открывается для чтения как двоичный файл.
Второй входной аргумент функции fopen определяет режим доступа к определяемому файлу. Их значения:
Формат вызова | Выполняемое действие |
fopen (‘name_f ile', ' r') | Открывается существующий двоичный файл для чтения |
fopen (‘name_f ile', ' rt') | Открывается существующий текстовый файл для чтения |
fopen (‘name_f ile', ' r+') | Открывается существующий двоичный файл, который можно использовать как для чтения, так и для записи (новый файл при этом не создается) |
fopen ('name_file', ' rt+') | Открывается существующий текстовый файл, который можно использовать как для чтения, так и для записи (новый файл при этом не создается) |
fopen ('name_file', 'w') | Открывается существующий или создается новый двоичный файл для записи. Предыдущее содержимое существующего файла пропадает |
fopen (‘name_file', ' wt') | Открывается существующий или создается новый текстовый файл для записи. Предыдущее содержимое существующего файла пропадает |
fopen ('name_file', ' w+') | Если существующий двоичный файл был ранее открыт, то его содержимое от текущей позиции указателя и до конца усекается. Если файл с таким именем не существовал, то создается новыйфайл. Открытый файл можно использовать для записи и чтения |
fopen ('name_file', 'wt+') | Если существующий тектовый файл был ранее открыт, то его содержимое от текущей позиции указателя и до конца усекается. Если файл с таким именем не существовал, то создается новыйфайл. Открытый файл можно использовать для записи и чтения |
fopen ('name_file', ' а') | Открывается существующий двоичный файл длядозаписи или создается новый файл |
fopen (' name_f ile', ' at') | Открывается существующий текстовый файл длядозаписи или создается новый файл |
fopen ('name_file', 'а+') | Открывается существующий двоичный файл длячтения и дозаписи. Если файла с указанным именем нет, то его создают |
fopen (' name_file', ' at+') | Открывается существующий текстовый файл длячтения и дозаписи. Если файла с указанным именем нет, то его создают |
|
|