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
содержит путь файла.
Создайте новый файл во временной папке системы. Имя временной папки отличается для других платформ. Команда 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:
Можно явным образом задать папку и имена файлов. Следующий пример только работает над системами как 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
Команда 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
Чтобы задать кодирование, чтобы считать данные, используйте 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������"
|
Имя файла: символьная строка |
|
Дескриптор файла обеспечивается |
|
Заставляет | ||||||||||||||||||||||||||||||
|
Подавляет вывод во время выполнения | ||||||||||||||||||||||||||||||
|
Эта опция позволяет вам задать кодировку символов, чтобы использовать. Позволенная кодировка:
Кодировка по умолчанию системно-зависима. Если вы задаете кодирование неправильно, символы могут читать неправильно. Символы, нераспознанные кодированием, заменяются символом замены по умолчанию для заданного кодирования. Кодировка, не перечисленная здесь, может быть задана, но не может привести к правильным результатам. |
Возвращаемое значение последнего оператора файла.
FILEPATH
| READPATH
| WRITEPATH
| fclose
| finput
| fname
| fopen
| fprint
| fread
| ftextinput
| import::readbitmap
| import::readdata
| input
| pathname
| print
| protocol
| readbytes
| textinput
| write
| writebytes