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
символьная строка, определяющая требуемый режим доступа к файлу.
- swap
скаляр. Если есть
swap
иswap = 0
, тогда автоматическая перестановка байтов отключается.Значение по умолчанию равно 1.
- err
скаляр. Индикатор ошибки.
значение ошибки: сообщение об ошибке: 0 нет ошибки -1 больше нет логических модулей -2 не могу открыть файл -3 больше нет памяти -4 некорректное имя -5 некорректный статус - fd
скаляр: дескриптор файла (это положительное целое число).
Описание
Функция mopen
может использоваться для
того, чтобы открыть файл file
способом,
совместимым с C-процедурой fopen
. Без
аргумента swap
файл
file
предполагается закодированным в
формате IEEE "с прямым порядком байтов" и байты данных
автоматически переставляются, если необходимо
соответствовать формату IEEE процессора.
Параметр mode
управляет типом доступа к потоку. Этот параметр может иметь одно из
следующих значений:
- r
открывает файл для чтения (по умолчанию). Файл должен существовать, в противном случае ничего не получится.
- w
открывает файл на запись. Если этот файл существует, то его содержимое будет уничтожено.
- a
открывает файл для добавления записи. Создаёт файл если он не существует.
- r+
открывает файл как для чтения, так и для записи. Файл должен существовать, иначе ничего не получится.
- w+
открывает файл как для чтения, так и для записи. Если файл существует, то его содержимое будет уничтожено.
- a+
открывает файл как на чтение, так и на добавление записи. Создаёт файл если он не существует.
Кроме того могут быть использованы следующие символы для определения типа файла:
- t
текстовый файл.
- b
двоичный файл (по умолчанию).
По умолчанию режим доступа 'rb'
(чтение
двоичного файла).
Заметьте: в Windows, в режиме текстового файла комбинации CR (возврат каретки) - LF (конец строки) преобразуются в LF при чтении, а LF преобразуются в комбинации CR-LF при записи. |
Когда вы открываете файл для обновления, вы можете выполнять операции
как ввода, так и вывода в результирующем потоке. Однако за операцией
вывода не может напрямую идти операция ввода без операции
позиционирования файла (функция 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 — управление файлами
- 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 | Файлы: функции ввода/вывода | mput >> |