fread

Считайте и выполните файл

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

fread(filename | n, <Quiet>, <Plain>, <Encoding = "encodingValue">)

Описание

fread(file) читает и выполняет файл MuPAD®.

fread(filename) читает файл и оценивает каждый оператор MuPAD в файле. Если концы имени файла в “.gz” и файле будут в gzip - сжатый формат, это будет прозрачно несжатым после чтения. fread автоматически открывает файл, выполняет операцию чтения и закрывает файл.

fread(..., Encoding = "encodingValue") использует заданное кодирование. Для поддерживаемой кодировки см. Опции. Можно использовать эту опцию с ранее заданными синтаксисами.

fread подобен read. Единственная разница - то, что fread не ищет файлы в папках, данных READPATH и путем к библиотеке; fread только ищет файл относительно “рабочей папки”.

Обратите внимание на то, что значение “рабочей папки” зависит от операционной системы. В системах Windows® и в системах Mac OS X, “рабочая папка” является папкой, где MATLAB® установлен. В системах UNIX® это - текущая рабочая папка, в которой был запущен MATLAB. Когда запущено с меню или настольного элемента, это обычно - домашняя папка пользователя.

Также абсолютные пути обрабатываются fread.

fread может считать двоичные файлы MuPAD (созданный через fprint или write), а также текстовые ASCII-файлы. fread распознает формат файла автоматически.

Вместо имени файла может также использоваться дескриптор файла файла, открытого через fopen. Смотрите Пример 3. Когда дескриптор файла используется, fread автоматически не открывает и закрывает файл. fclose должен использоваться, чтобы закрыть файл.

Когда файл читается с fread, переменная FILEPATH содержит путь файла.

Примеры

Пример 1

Создайте новый файл во временной папке системы. Имя временной папки отличается для других платформ. Команда fopen с опцией TempFile создает файл во временной папке любой системы (если такая папка существует):

fid := fopen(TempFile, Write, Text): 
fprint(Unquoted, fid, "a := 3; b := 5; a + b;"):

Используйте fname, чтобы возвратить имя временного файла, который вы создали. Используйте fclose, чтобы закрыть файл:

file := fname(fid):
fclose(fid)

При чтении файла MuPAD выполняет операторы. Каждый производит печать вывод. Второй 8 ниже является возвращаемым значением fread:

delete a, b:
fread(file);

Теперь, переменным a и b присвоили значения в файле:

a, b

С опцией Quiet только распечатано возвращаемое значение fread:

delete a, b:
fread(file, Quiet)

delete a, b:

Пример 2

Следующий пример демонстрирует опцию Plain. Во-первых, соответствующий входной файл создается:

fid := fopen(TempFile, Write, Text): 
fprint(Unquoted, fid,
       "f := proc(x) begin x^2 end_proc:",
       "a := f(3): b := f(4):"):
file := fname(fid):
fclose(fid)

Задайте alias для f:

alias(f = "some text"):

Ошибка происходит, при попытке считать файл без опции Plain. В контексте синтаксического анализатора сеанса MuPAD псевдоним заменяет f соответствующей строкой в присвоении f := .... Однако строки не могут быть присвоены значение:

fread(file)
Error: Invalid left-hand side. [_assign]
  Reading File: /tmp/mupad.351omQ

С опцией Plain не возникает никакая такая ошибка: псевдоним для f проигнорирован fread:

fread(file, Plain):
a, b

unalias(f):
delete f, a, b:

Пример 3

Вы используете write, чтобы сохранить значение идентификатора a во временном файле:

a := PI + 1:
fid := fopen(TempFile, Write, Text): 
file := fname(fid):
write(file, a):
delete a:

Этот файл открыт для чтения с fopen:

n := fopen(file):

Дескриптор файла, возвращенный fopen, может быть передан fread. Чтение файла восстанавливает значение a:

fread(n):
a

fclose(n):
delete a:

Пример 4

Чтобы задать кодирование для чтения данных, используйте Encoding. Опция Encoding применяется только к текстовым файлам, которые открыты с помощью имени файла и не дескриптора файла. Откройте временный файл и напишите оператор str := "abcäöü" в кодировании "UTF-8":

fprint(Unquoted, Text, Encoding="UTF-8",
                       "fread_test",
                       "str := \"abcäöü\"")

Задайте кодирование, чтобы считать файл. fread выполняет оператор:

fread("fread_test", Encoding="UTF-8"):

Если вы не задаете кодирование, системное кодирование по умолчанию используется. Таким образом ваш вывод может отличаться от показанного затем. Символы, нераспознанные системным кодированием по умолчанию, заменяются символом замены по умолчанию для того кодирования:

fread("fread_test"):

Параметры

filename

Имя файла: символьная строка

n

Дескриптор файла обеспечивается fopen: положительное целое число

Опции

Plain

Заставляет fread использовать свой собственный контекст синтаксического анализатора

При использовании этой опции файл читается в новом контексте синтаксического анализатора. Это означает, что история, как возвращено командой history, не изменяется операторами в файле. Далее, набор сокращений вне файла через alias или пользовательские операторы проигнорирован во время выполнения файла. Эта опция полезна для чтения файлов инициализации в чистой среде.

Quiet

Подавляет вывод во время выполнения fread

При использовании этой опции вывод подавлен при чтении и выполнении файла. Однако предупреждения и сообщения об ошибке, а также вывод команд print все еще видимы.

Encoding

Эта опция позволяет вам задать кодировку символов, чтобы использовать. Позволенная кодировка:

"Big5"

"ISO-8859-1"

"windows-932"

"EUC-JP"

"ISO-8859-2"

"windows-936"

"GBK"

"ISO-8859-3"

"windows-949"

"KSC_5601"

"ISO-8859-4"

"windows-950"

"Macintosh"

"ISO-8859-9"

"windows-1250"

"Shift_JIS"

"ISO-8859-13"

"windows-1251"

"US-ASCII"

"ISO-8859-15"

"windows-1252"

"UTF-8"

 

"windows-1253"

  

"windows-1254"

  

"windows-1257"

Кодировка по умолчанию системно-зависима. Если вы задаете кодирование неправильно, символы могут читать неправильно. Символы, нераспознанные кодированием, заменяются символом замены по умолчанию для заданного кодирования.

Кодировка, не перечисленная здесь, может быть задана, но не может привести к правильным результатам.

Возвращаемые значения

Возвращаемое значение последнего оператора файла.

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

Функции MuPAD