ftextinput

Чтение текстового файла

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

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

Синтаксис

ftextinput(filename | n, <Encoding = "encodingValue">)
ftextinput(filename | n, x1, x2, …, <Encoding = "encodingValue">)

Описание

ftextinput(file, x) читает строку из текстового файла, интерпретирует линию как строку и присваивает эту строку идентификатору x.

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

ftextinput(filename, x1, x2, ...) читает файл линию за линией. i-th линия преобразован в символьную строку и присвоен идентификатору x i. Идентификаторы не оценены при выполнении ftextinput; перезаписываются ранее присвоенные значения.

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

Вместо имени файла, также дескриптор файла n из файла, открытого через fopen может использоваться. Функциональность аналогична описанному выше. Однако существует одно различие: С именем файла, ftextinput автоматически открывает файл, выполняет операцию и закрывает файл. Последующий вызов ftextinput запускается в начале файла. С дескриптором файла файл остается открытым (используйте fclose закрыть файл). В следующий раз, когда данные считаны из этого файла, чтение продолжается в текущем положении. Следовательно, дескриптор файла должен использоваться, если отдельные строки в файле должны быть прочитаны через несколько последующих вызовов ftextinput. См. пример 2.

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

ftextinput интерпретирует имя файла как путь относительно “рабочей директории”.

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

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

Последовательности выражения не сглажены ftextinput и не может использоваться, чтобы передать несколько идентификаторов ftextinput. См. пример 3.

Примеры

Пример 1

Используйте fprint создать текстовый файл с тремя линиями:

fid := fopen(TempFile, Write, Text):
fprint(Unquoted, fid, "x + 1\n2nd line\n3rd line"):
file := fname(fid):

Прочитайте первые две строки файла и присвойте соответствующие строки идентификаторам x1 и x2:

ftextinput(file, x1, x2):
x1, x2

При попытке читать вне последней линии файла, ftextinput возвращает пустой объект типа DOM_NULL:

ftextinput(file, x1, x2, x3, x4); domtype(%)

x1, x2, x3, x4

delete x1, x2, x3:

Пример 2

Прочитайте некоторые строки из файла с помощью нескольких вызовов ftextinput. Необходимо использовать дескриптор файла в чтении из файла. Файл открыт для чтения с fopen:

fid := fopen(TempFile, Write, Text):
fprint(Unquoted, fid, 
       "x + 1\nx + 2\n3rd line\n4th line"):
file := fname(fid):
n := fopen(file):

Дескриптор файла возвращен fopen может быть передан ftextinput для чтения данных:

ftextinput(n, x1, x2):
x1, x2

ftextinput(n, x3, x4):
x3, x4

Наконец, закройте файл и удалите идентификаторы:

fclose(n):
delete n, x1, x2, x3, x4:

В качестве альтернативы содержимое файла может быть считано в сеанс MuPAD следующим образом:

n := fopen(file):
for i from 1 to 4 do
   x.i := ftextinput(n)
end_for:
x1, x2, x3, x4

fclose(n):
delete n, i, x1, x2, x3, x4:

Пример 3

Последовательности выражения не сглажены ftextinput и не может использоваться, чтобы передать идентификаторы ftextinput:

fid := fopen(TempFile, Write, Text):
fprint(Unquoted, fid, "1st line\n2nd line\n3rd line"):
file := fname(fid):
ftextinput(file, (x1, x2), x3)
Error: Invalid argument. [ftextinput]

Следующий вызов не приводит к ошибке потому что идентификатор x12 не оценен. Следовательно, только одна строка прочитана из файла и присвоена x12:

x12 := x1, x2:
ftextinput(file, x12):
x1, x2, x12

delete x12:

Пример 4

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

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

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

ftextinput("ftextinput_test", Encoding="UTF-8")

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

ftextinput("ftextinput_test")

Параметры

filename

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

n

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

x1, x2, …

идентификаторы

Опции

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