Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Файлы: функции ввода/вывода > mseek

mseek

устанавливает текущую позицию в двоичном файле

Синтаксис

mseek(n [,fd, flag])

Аргументы

n

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

fd

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

flag

строка: определяет исходное положение. Значение по умолчанию -- 'set'.

Описание

Функция mseek устанавливает положение следующей операции ввода или вывода потока fd. Новое положение находится на расстоянии (со знаком), указанном в n байт от начала, от текущего положения или от конца файла в соответствии со значением flag, которое может быть 'set', 'cur' или 'end'.

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

Примеры

file3=fullfile(TMPDIR,'test3.bin');
fd1= mopen(file3,'wb');
for i=1:10
  mput(i,'d');
end
mseek(0);
mput(678,'d');
mseek(0,fd1,'end');
mput(932,'d');
mclose(fd1)

fd1= mopen(file3,'rb');
res=mget(11,'d')
res1=[1:11]; res1(1)=678;res1($)=932;
if res1<>res then
  write(%io(2),'Ошибка в программе');
end
mseek(0,fd1,'set');

// попытка чтения данных более, чем сохранено
res1=mget(100,'d',fd1);
if res1<>res then
  write(%io(2),'Ошибка в программе');
end
meof(fd1)
mclearerr(fd1)
mclose(fd1);

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

  • mclose — закрывает открытые файлы
  • meof — проверяет достигнут ли конец файла
  • mfprintf — преобразует, форматирует и записывает данные в файл
  • fprintfMat — записывает матрицу в файл
  • mfscanf — считывает входные данные из потока, указанного указателем потока (интерфейс с C-функцией fscanf)
  • fscanfMat — считывает матрицу из текстового файла
  • mget — считывает байт или слово в заданном двоичном формате и преобразует в число удвоенной точности
  • mgetstr — считывает символьную строку из файла
  • mopen — открывает файл в Scilab'е
  • mprintf — converts, formats, and writes data to the main scilab window
  • mput — записывает байт или слово в заданном двоичном формате
  • mputstr — записывает символьную строку в файл
  • mtell — возвращает смещение текущего байта относительно начала файла
  • mdelete — удаляет файлы
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:13:25 CET 2017