read

Поиск, читайте и выполните файл

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

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

Синтаксис

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

Описание

read(filename) ищет файл в различных папках:

  • Во-первых, filename конкатенирован к каждой папке, данной переменной окружения READPATH.

  • Затем имя файла интерпретировано как абсолютный путь.

  • Затем имя файла интерпретировано как относительный путь, т.е. относительно “рабочей папки”.

  • Наконец, имя файла конкатенировано к пути к библиотеке.

Если файл может быть открыт с одним из этих имен, то файл читается и выполняется с fread.

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

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

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

Разделитель пути (“/”) вставляется по мере необходимости при конкатенации данного пути и filename.

read(n) с дескриптором файла n, как возвращено fopen эквивалентен вызову fread(n). Когда названо описанием файла, read автоматически не открывает и закрывает файл. Используйте fopen и fclose, чтобы открыть и закрыть файл. Опция Encoding не работает с этим синтаксисом.

Когда вы используете команду read, чтобы считать файл, команда оценивает все операторы в том файле с максимальной глубиной замены, заданной LEVEL. Значение по умолчанию LEVEL для интерактивных вычислений равняется 100. Смотрите Пример 3.

Смотрите функциональный fread для получения дополнительной информации о чтении и выполнении содержимого файла и для подробного описания опций Plain и Quiet.

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

Примеры

Пример 1

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

a := 3:
b := 5:
fid := fopen(TempFile, Write, Text):

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

write(fid, a, b):

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

file := fname(fid):

После чтения файла восстанавливаются значения a и b:

delete a, b:
read(file):
a, b

Также используйте fopen, чтобы открыть файл и считать его содержимое:

delete a, b:
n := fopen(file):
read(n):
fclose(n):
a, b

delete a, b, READPATH, n:

Пример 2

Можно явным образом задать папку и имена файлов. Следующий пример только работает над системами как UNIX. Чтобы заставить его работать над другими операционными системами, измените пути соответственно. Во-первых, используйте write, чтобы сохранить значения в файле “testfile.mb” в папке “/tmp”:

a := 3:
b := 5:
write("/tmp/testfile.mb", a, b):

Теперь, задайте “/tmp” как поисковую папку и обеспечьте путь относительно него. Обратите внимание на то, что разделитель пути “/” вставляется read:

delete a, b:
READPATH := "/tmp":
read("testfile.mb"):
a, b

Пример 3

Команда read оценивает все операторы в файле, который она читает с максимальной глубиной замены, заданной LEVEL. Например, создайте и считайте файл, который задает значение переменной a при помощи другой переменной b. Используйте команду fopen с опцией TempFile, чтобы создать новый файл во временной папке системы:

fid := fopen(TempFile, Write, Text):

Запишите следующие операторы в файл:

fprint(Unquoted, fid, "a := b^2:  b := 5: c := a/3: delete a, b:"):

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

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

Считайте файл. Команда read оценивает операторы в файле рекурсивно:

read(file):
c

Чтобы подавить рекурсивные оценки, измените максимальную глубину замены на 1:

delete c:
LEVEL := 1:
read(file):
c

Восстановите значение по умолчанию LEVEL для дальнейших вычислений:

delete LEVEL

Пример 4

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

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

Задайте кодирование, чтобы считать файл. read возвращает правильный выходной параметр:

read("read_test",Encoding="UTF-8"):
"abcäöü"

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

read("read_test"):
"abc������"

Параметры

filename

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

n

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

Опции

Plain

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

Quiet

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

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"

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

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

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

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