Иллюстрированный самоучитель по Mathematica



              

Упрощенная работа с файлами - часть 2


Мы уже приводили примеры использования определений, содержащихся в файлах пакетов расширения системы.

Имеется еще ряд функций для работы с файлами:

  • ReadList ["filename" ] — читает все оставшиеся в файле "filename" выражения и возвращает их в виде списка;
  • ReadList ["filename", type] — читает из файла "filename" объекты указанного типа type до конца файла. Возвращает список считанных объектов;
  • ReadList ["filename", {typel, type2,...}] — читает объекты указанных типов type1 до конца файла filename;
  • ReadList [ "filename", types, n] — читает только первые п объектов указанных типов types из файла filename;
  • Save ["filename", x1, x2,...] — создает файл с заданным именем filename, содержащий значения переменных x1, х2, ...;
  • ! command — исполняет заданную команду операционной системы.

Допустим, что в любом текстовом редакторе создан файл с полным именем C:\datas.txt в ASCII-формате, содержащий просто шесть чисел с разделительными пробелами, размещенные в двух строках и представляющие массив 2x3 элемента:

1 11.2 34.5

2. 3.4 56

Тогда о структуре файла можно судить, используя команду

!!С:\datas.txt

1 1.2 34.5 2. 3.4 56.

Нетрудно заметить, что структура файла соответствует структуре массива. Однако считывание файла командой «name дает следующий результат:

<<С: \datas. txt

380.8

Результат представляет вычисленное выражение второй строки файла. Считывание функцией ReadList без дополнительного аргумента также дает ошибочный результат:

ReadList["С:\datas.txt"]

{41.4, 380.8}

Нетрудно подметить, что функция восприняла каждую строку содержимого файла как результат перемножения трех чисел (пробел на языке Mathematica означает умножение). С дополнительным параметром Number все числа считываются верно:

ReadList["С:\datas.txt", Number]

{1, 1.2, 34.5, 2., 3.4, 56.}

Однако мы получили одномерный список — данные просто считываются построчно.


Содержание  Назад  Вперед