Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные понятия среды MATLAB.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.79 Mб
Скачать

6. 3 Работа с текстовыми и бинарными файлами

К неформатированным файлам относятся как текстовые, так и бинарные файлы. Двоичными или бинарными называют файлы, данные которых, представляют собой машинные коды. Обработка двоичных файлов выполняется по следующей схеме:

  • открыть файл для записи (команда fopen);

  • записать данные в файл (команда fwrite);

  • закрыть файл (команда fclose);

  • открыть файл для чтения (команда fopen);

  • чтение данных из файла (команда fread) или запись данных в файл (команда fwrite);

  • закрыть файл (команда fclose).

6.3.1 Команды открытия и закрытия файлов

Команда fopen открывает файл, который размещен на диске под именем filename или возвращает информацию о файле (команда похожа на аналогичную функцию языка программирования С). Имя файла представляет собой символьную строку, которая может содержать полный путь к файлу, например, 'C:\Documents and Settings\Lena\dat'.

В качестве возвращаемых переменных можно определять:

  • одно значение (fid), которое представляет собой целое число и используется в дальнейшем для обращения к файлу при операциях ввода-вывода (таблица 2.) Значение зависит от режима открытия файла;

  • два значения ([fid, message]), где переменная message содержит сообщение об ошибке, которая может возникнуть при открытии файла.

Синтаксис.

    • fid = fopen(filename) – открытие файла с именем filename;

    • [fid,message] = fopen(filename,permission)открытие файла с режимом, заданным параметром permission (таблицы 2.2, 2.3);

    • [fid,message] = fopen(filename,permission,format)открытие файла с точным определением числового формата format (таблицы 2.4);

    • fids = fopen('all') – возвращает вектор-строку, содержащую идентификаторы всех открытых файлов, не включая стандартные потоки 0, 1 и 2. Число элементов вектора равно числу открытых пользователем файлов;

    • [filename,permission,format] – fopen(fid) – возвращает полное имя файла filename, строку permission и строку format. При использовании недопустимых значений fid возвращаются пустые строки для всех выходных аргументов.

Таблица 1.19 Значения переменной fid

Значение

fid

Параметр

permission

Значение

0

'r'

чтение с клавиатуры

1

'а'

вывод на дисплей

2

'а'

вывод сообщения об ошибке

-1

неудача в открытии файла с выводом сообщения message о типе ошибки

Таблица 1.20 Значения параметра permission

Параметр

Значение

'r'

открытие файла для чтения (по умолчанию)

'w'

удаление содержимого существующего файла или создание нового и открытие его для записи

'а'

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

'r+'

открытие файла для чтения и записи

'w+'

удаление содержимого существующего файла или создание нового и открытие его для чтения и записи

'a+'

открытие или создание нового файла для чтения и записи. Новые записи добавляются в конец файла.

'A'

добавление записей без автоматического сдвига

'W'

запись без автоматического сдвига

Добавление к строке параметра permission символа 'b' (подразумевается по умолчанию) предписывает системе открыть файл в двоичном режиме. Добавление символа 't', например 'rt', в операционных системах, которые имеют различие между текстовыми и двоичными файлами, предписывает системе открыть файл в текстовом режиме. Например, во всех версиях MATLAB для Windows/MS-DOS нельзя открыть текстовый файл без параметра 'rt'. При вводе файлов с использованием fopen в текстовом режиме удаляются все символы "возврат каретки" перед символом новой строки.

Таблица 1.21 Значения параметра format

Формат

Назначение

'n' или 'native'

формат текущей системы

'b' или 'ieee-be'

Big-endian byte ordering

'l' или 'ieee-le'

Little-endian byte ordering

's' или 'ieee-be.l64'

Big-endian byte ordering, 64–битные данные

По завершению работы с файлом его необходимо закрыть с помощью команды fclose.

Синтаксис.

  • status = fclose(fid) – закрывает файл, если он открыт. Возвращает статус файла status, равный 0, если закрытие завершилось успешно, и -1 в противном случае. Аргумент fid – это идентификатор, связанный с открытым файлом (см. функцию fopen для более подробного описания);

  • status = fclose('all') закрывает все открытые файлы. Возвращает 0 в случае успешного завершения и -1 – в противном случае.

Пример.

Открытие и закрытие файла:

>> fid=fopen('c:\Documents and Settings\Lena\dat'.'а+')

>> fclose(fid)

ans = 0

Для отслеживания позиции файлового указателя и работы с ним служат функции feof (индикация конца файла ), fseek ( устанавливает файловый указатель ), ftell (позволяет определять значение текущего файлового указателя), frewind (устанавливает файловый указатель на начало файла). Все эти функции имеют достаточно просты в использовании, поэтому мы их подробно рассматривать не будем.