- Scilab help
- Files : Input/Output functions
- Directory
- Paths - Filenames
- copyfile
- deletefile
- dispfiles
- fileinfo
- findfiles
- fprintf
- fprintfMat
- fscanf
- fscanfMat
- getmd5
- %io
- isfile
- listfiles
- listvarinfile
- maxfiles
- mclearerr
- mclose
- mdelete
- meof
- merror
- mfprintf
- mfscanf
- mget
- mgetl
- mgetstr
- mopen
- movefile
- mput
- mputl
- mputstr
- mseek
- mtell
- newest
- save_format
- scanf
- преобразование scanf
- sscanf
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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 — удаляет файлы
Report an issue | ||
<< mputstr | Files : Input/Output functions | mtell >> |