<< mfscanf Файлы: функции ввода/вывода mgetl >>

Scilab Help >> Файлы: функции ввода/вывода > mget

mget

считывает байт или слово в заданном двоичном формате и преобразует в число удвоенной точности

mgeti

считывает байт или слово в заданном двоичном формате и возвращает целочисленное значение типа int

Синтаксис

x = mget([n, type, fd])
x = mgeti([n, type, fd])

Аргументы

n

положительный скаляр: количество считываемых данных.

fd

скаляр: параметр fd, возращённый функцией mopen. Для последнего открытого файла ставится -1. Значение по умолчанию -1.

type

строка: двоичный формат, используемый для записи всех элементов x.

x

вектор целых чисел или чисел с плавающей запятой.

Описание

Функция mget считывает данные со входа, определённого параметром потока fd и возвращает вектор данных с плавающей запятой.

Функция mgeti считывает данные со входа, определённого параметром потока fd и возвращает вектор целочисленных данных.

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

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

В Windows, поведение по умолчанию состоит в пропуске байта 13 (0x0D). Функцию mopen следует вызывать с опцией 'b', например, fd1 = mopen(file1,'rb'), так что все байты без исключения будут прочитаны.

Тип данных:

d

удвоенная точность, double

f

плавающая запятая, float

l

длинное, long long

i

целочисленное, int (long int)

s

короткое, short

c

символ, character

Необязательный флаг:

u..

беззнаковый (в сочетании с одним из вышеперечисленных типов)

..l

прямой порядок байтов (в сочетании с одним из вышеперечисленных типов)

..b

обратный порядок байтов (в сочетании с одним из вышеперечисленных типов)

Чтение байтов автоматически переключается при необходимости (с помощью проверки статуса little=endian).

Такое поведение переключения можно подавить, если добавить флаг в функцию mopen.

Форматы "l", "d" и "f" корректны только с функцией mget.

Примеры

file1 = fullfile(TMPDIR,'test1.bin');
file2 = fullfile(TMPDIR,'test2.bin');
fd1=mopen(file1,'wb');
fd2=mopen(file2,'wb');
mput(1996,'ull',fd1);
mput(1996,'ull',fd2);
mclose(fd1);
mclose(fd2);

fd1=mopen(file1,'rb');
if 1996<>mget(1,'ull',fd1)
  write(%io(2),'Bug');
end

fd2=mopen(file2,'rb');
if 1996<>mget(1,'ull',fd2)
  write(%io(2),'Bug');
end

mclose(fd1);
mclose(fd2);

Смотрите также


Report an issue
<< mfscanf Файлы: функции ввода/вывода mgetl >>