- 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
mopen
открывает файл в Scilab'е
Последовательность вызова
[fd, err] = mopen(file [, mode, swap ])
Аргументы
- file
символьная строка. Имя файла, который требуется открыть.
- mode
символьная строка, которая контролирует открыт ли файл для чтения (
r
), записи (w
) или дополнения (a
) и открыт ли файл для обновления (+
).mode
может также включать в себя параметрb
для указания бинарного файла.Значение по умолчанию --
'rb'
.- swap
скаляр. Если есть
swap
иswap = 0
, тогда автоматическая перестановка байтов отключается.Значение по умолчанию равно 1.
- err
скаляр. Индикатор ошибки.
значение ошибки: сообщение об ошибке: 0 нет ошибки -1 больше нет логических модулей -2 не могу открыть файл -3 больше нет памяти -4 некорректное имя -5 некорректный статус - fd
скаляр: дескриптор файла (это положительное целое число).
Описание
Функция mopen
может использоваться для того, чтобы открыть файл file
способом, совместимым с C-процедурой fopen
. Без аргумента swap
файл file
предполагается закодированным в формате IEEE "с прямым порядком байтов" и байты данных автоматически переставляются, если необходимо соответствовать формату IEEE процессора.
Параметр mode
управляет разрешённым доступом к потоку. Этот параметр может иметь одно из следующих значений. В этом списке значений символ b
обозначает бинарный файл.
- r
открывает файл для чтения.
- rb
открывает бинарный файл для чтения.
- rt
открывает текстовый файл для чтения.
- w
создаёт новый файл для записи или открывает и усекает файл до нулевой длины.
- wb
создаёт новый бинарный файл для записи или открывает и усекает файл до нулевой длины.
- wt
создаёт текстовый бинарный файл для записи или открывает и усекает файл до нулевой длины.
- a или ab
добавляет запись (открывает файл для записи в конце файла или создаёт файл для записи).
- r+ или r+b
открывает файл для обновления (чтение и запись).
- w+ or w+b
усекает до нулевой длины или создаёт файл для обновления.
- a+ или a+b
добавляет запись (открывает файл для обновления, записывая в конце файла, или создаёт файл для записи).
Когда вы открываете файл для обновления, вы можете выполнять операции
как ввода, так и вывода в результирующем потоке. Однако за операцией
вывода не может напрямую идти операция ввода без операции
позиционирования файла (функция mseek
). Также,
за операцией ввода не может идти операция вывода без промежуточной
операции позиционирования файла пока операция ввода не встретит конец
файла.
Когда вы открываете файл для добавления записи (то есть, когда
параметр mode
равен a
или
a+
), то невозможно перезаписать информацию,
которая уже есть в файле. Вы можете использовать функцию
mseek
для смены положения указателя позиции в
файле в любое место файла, но, когда вывод записан в файл, текущий
указатель позиции в файле игнорируется. Весь вывод записывается в
конец файла и указатель позиции в файле перемещается в конец вывода.
Чтобы открыть файлы способом, совместимым с Fortran-функциями используйте функцию file
.
// открываем SCI+'/ACKNOWLEDGEMENTS' как текст только для чтения fd_r = mopen(SCI+'/ACKNOWLEDGEMENTS', 'rt') // читаем пять строк в fd_r mgetl(fd_r, 5) // другой способ чтения файла // здесь читаются пять слов mfscanf(5, fd_r, '%s') // закрываем дескриптор файл, связанный с SCI+'/ACKNOWLEDGEMENTS' mclose(fd_r);
// читаем/записываем файл как двоичный // сперва мы запишем файл fd_wb = mopen(TMPDIR+'/writeread.bin', 'wb') // положим значения в двоичном виде mput(2003, 'l', fd_wb); mput(2008, 'i', fd_wb); mput(2012, 's', fd_wb); mput(98, 'c', fd_wb); // закроем дескриптор файла, связанный с TMPDIR+'/writeread.bin' mclose(fd_wb); // прочитаем файл fd_rb = mopen(TMPDIR+'/writeread.bin', 'rb') mget(fd_rb, 'l') mget(fd_rb, 'i') mget(fd_rb, 's') mget(fd_rb, 'c') mclose(fd_rb)
Смотрите также
- file — file management
- mclose — закрывает открытые файлы
- merror — проверяет индикатор ошибок доступа к файлу
- meof — проверяет достигнут ли конец файла
- mfprintf — преобразует, форматирует и записывает данные в файл
- fprintfMat — записывает матрицу в файл
- mfscanf — считывает входные данные из потока, указанного указателем потока (интерфейс с C-функцией fscanf)
- fscanfMat — считывает матрицу из текстового файла
- mget — считывает байт или слово в заданном двоичном формате и преобразует в число удвоенной точности
- mgetl — считывает строки из текстового файла
- mgetstr — считывает символьную строку из файла
- mprintf — converts, formats, and writes data to the main scilab window
- mput — записывает байт или слово в заданном двоичном формате
- mputl — записывает строки в текстовый файл
- mputstr — записывает символьную строку в файл
- mseek — устанавливает текущую позицию в двоичном файле
- mtell — управление двоичными файлами
- mdelete — удаляет файлы
Report an issue | ||
<< mgetstr | Files : Input/Output functions | movefile >> |