Рис.1.24 Текстовые файлы, созданные вышеописанными функциями

Двоичные файлы

При открытии функцией fopen указывается режим: wb (аналогично wt для текстовых) и rb (вместо rt для текстовых) (Табл.1.3).

Чтение из двоичного файла выполняется [A n]=fread(f, n, type); где А матрица, n количество реально считанных в нее элементов.

uchar 1 байт Целое беззнак. uint16 2 Целое без знака
schar 1 Целое со знаком uint32 4 Целое без знака
int16 2 Целое со знаком uint64 8 Целое без знака
int32 4 Целое со знаком float32 4 Вещественное число
int64 8 Целое со знаком float64 8 Вещественное число

Таблица 1.3. Размеры переменных различных типов

В правой части выражения, f идентификатор файла, n количество считываемых (если удастся столько считать) элементов, type указывает сколько байт в каждом считываемом элементе. Если параметр type (см. таблицу) не указан то по умолчанию программа будет считать что выбрано значение uchar. Если пропущено количество n считываемых элементов, то будет считывать до конца файла.

function[]=exFread() f=fopen('exFwrite1_1.dat','rb'); x=fread(f,1,'int32') A=fread(f,x,'float32') fclose(f); f=fopen('exFwrite1_2.dat','rb'); x=fread(f,1,'int32') A=fread(f, [2 2], 'float32') fclose(f); end

Текущая позиция указателя (сколько байт от начала файла) возвращается функцией ftell(f) где f идентификатор файла. Вернуть указатель в начало файла можно функцией frewind(f). Остальные перемещения указателя с помощью функции fseek(f,n,origin) где n перемещение (в байтах) относительно позиции origin (три варианта: ‘bof’ или -1 начало файла, ‘eof’ или 1 конец файла, ‘cof’ или 0 текущая позиция. Относительно текущей позиции вперед n>0, назад n<0. В остальных случаях n>0.)

Запись в двоичный файл осуществляется функцией

n=fwrite(f, A, type) где f идентификатор файла, A матрица которую записываем, type тип записываемых значений, n отчет о количестве реально записанных значений.

Аналогично чтение из файла.


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



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