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 >> Input/Output functions > file

file

управление файлами

Синтаксис

[unit, err] = file("open", file-name [,status] [,access [,recl]] [,format])
file("close", unit)
file("rewind", unit)
file("backspace", unit)
file("last", unit)
[units, typ, nams, mod, swap] = file()
[units, typ, nams, mod, swap] = file(unit)

Аргументы

file-name

строковое значение, имя файла, который нужно открыть

Эта функция не может открывать файлы, чьи пути имеют не-ascii UTF-символы (диакритические знаки и т.д.). В этом случае следует использовать mopen().
status

строковое значение, статус файла, который следует открыть

"new"

файл не существует, новый файл (по умолчанию);

"old"

файл уже существует;

"unknown"

неизвестный статус;

"scratch"

файл должен будет удалён в конце сессии.

access

строковое значение, тип доступа к файлу:

"sequential"

последовательный доступ (по умолчанию);

"direct"

прямой доступ.

format

строковое значение, формат файла:

"formatted"

для форматированных файлов (по умолчанию);

"unformatted"

двоичная запись.

recl

целочисленное значение, это размер записи в байтах, в случае access="direct"

unit

целочисленное значение, указатель на логический модуль открытого файла

units

вектор целочисленных значений, указатель на логический модуль открытого файла. Модули 5 и 6 (%io) зарезервированы системой для входных и выходных устройств.

typs

Символьный вектор-строка, тип (C или Fortran) открытых файлов.

nams

Символьный вектор-строка, имена путей открытых файлов.

mod

режим открытия файла. Сформированный тремя элементами abc:

>Файлы Fortran
a 0 стоит для форматированных, а 1 - для неформатированных (двоичных)
b 0 стоит для последовательного доступа, а 1 - для прямого доступа
c 0 стоит для "new", 1 - для "old", 2 - для "scratch" и 3 - для "unknown"
C-файлы
a 1 стоит для "r" (чтение), 2 стоит для "w" (запись) и 3 - для "a" (дополнение)
b равен 1, если файл открыт в режиме "+" (обновление)
c равен 1, если файл открыт в режиме "b" (двоичный)
swap

переключатель автоматического обмена. swap=1, если автоматический обмен включён. Для Fortran-файлов swap всегда 0.

err

целочисленный код, возвращаемый, если открытие файла провалилось. Если err пропущен, то выдаётся сообщение об ошибке.

65Файл уже используется
66Открыто слишком много файлов!
67Неизвестный формат файла
240 Файл уже существует или запрещена запись в директорию.
241Файл не существует или чтение запрещено.

Описание

file(…) выбирает логический модуль unit и управляет файлом file-name.

[unit [,err]]=file("open", file-name [,status] [,access [,recl]][,format])

позволяет открыть файл с особыми параметрами и получить номер связанного модуля unit. Этот номер модуля можно использовать для дальнейших действий с этим файлом или в качестве дескриптора файла при вызове функций read, write, readb, writb, save, load.

file("close", unit)

позволяет закрыть файл или передвинуть текущий указатель файла.

file("rewind", unit)

кладёт указатель в начало файла.

file("backspace", unit)

кладёт указатель в начало последней записи.

file("last", unit)

кладёт указатель после последней записи.

file()

возвращает дескрипторы открытых файлов.

Чтобы проверить, открыт ли файл, чей модуль равен id, можно использовать file(id)~=[].

Чтобы закрыть все открытые пользователем файлы (типа C или Fortran), можно использовать file("close",file()).

Примеры

u=file("open",TMPDIR+"/foo","unknown")
for k=1:4
  a=rand(1,4)
  write(u,a)
end
file("rewind",u)
x=read(u,2,4)
file("close",u)
//
u1=file("open",TMPDIR+"/foo","unknown")
u2=mopen(TMPDIR+"/foo1","wb")
[units,typs,nams]=file()
file("close",u1);
mclose(u2);

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

  • isfile — проверяет является ли аргумент существующим файлом
  • read — matrices read
  • readb — fortran file binary read
  • write — write in a formatted file
  • writb — fortran file binary write
  • mopen — открывает файл в Scilab'е
  • save — Saves some chosen variables in a binary data file
  • load — Loads some archived variables, a saved graphic figure, a library of functions
  • uigetfile — dialog window to get a file(s) name(s), path and filter index

История

VersionDescription
6.0.0 Внесена stderr в выход file() в виде units(1)=0, typ(1)="STD" и nams(1)="stderr".
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:57 CET 2020