Файл
данных Mathcad должен быть просто файлом в ASCII
формате. Mathcad читает файлы, которые состоят из
чисел, отделяемых запятыми, пробелами или
возвратами каретки. Ниже описаны примеры
некоторых файлов, которые Mathcad может читать, в
предположении, что они записаны в ASCII формате:
- Файл, содержащий экспериментальные данные,
фиксируемые аппаратными средствами и
программным обеспечением сбора данных.
- Файл, созданный выводом данных из электронной
таблицы на диск.
- Столбец чисел, набитых в текстовом процессоре и
сохраненных в ASCII формате.
- Результат работы программы, написанной на языке
БЕЙСИК.
- Данные, экспортированные из базы данных.
Числа в файлах данных могут быть целыми
числами, подобными 3 или -1, числами с плавающей
запятой, подобными 2.54, или иметь
экспоненциальную запись, как 4.51E -4 (для 4.510-4). Например,
следующий список чисел был бы допустимой строкой
в файле данных Mathcad:
200, 50 25.1256, 16E – 2, – 16.125E15
Mathcad также сохраняет данные в ASCII файлы. Файлы
данных, сохранённые Mathcad, содержат числа,
отделяемые пробелами и возвратами каретки.
Обратите внимание: документы Mathcad сами по себе не
являются файлами данных в указанном понимании.
Единственный способ создать файл данных из Mathcad
— использование функций доступа к файлам,
описанное в этой главе.
Функции доступа к файлам
В Mathcad есть шесть функций доступа к файлам READ,
WRITE, APPEND, READPRN, WRITEPRN e APPENDPRN. Их
свойства:
- Имя функции должно печататься заглавными
буквами. Можно также использовать пункт Вставить
функцию меню Математика, чтобы перенести
имя функции из раскрывающегося списка двойным
щелчком мыши. Insert Function command
- Если Mathcad не может найти файл данных, он отмечает
соответствующую функцию доступа сообщением об
ошибке “файл не найден”. Если Mathcad пытается
прочитать файл неподходящего формата, он
отмечает функцию сообщением “ошибка файла”.
- Левая часть оператора присваивания,
использующего одну из функций WRITE, APPEND, WRITEPRN
e APPENDPRN, ia должна больше ничего содержать.
- Каждое новое равенство с использованием
функций доступа заново открывает файл данных.
При считывании данных, например, каждое новое
равенство начинает читать в начале файла.
- В одном равенстве файл может быть открыт только
единожды. Это означает, что, если функция READ
используется с одним аргументом-именем файла
дважды в одном уравнении (это возможно при
использовании дискретного аргумента), во второй
раз READ начнет читать с того места, где
закончила в первый. Поскольку READPRN читает
весь файл целиком, это означает, что READPRN нельзя
использовать с одним аргументом дважды в одном
равенстве — во второй раз READPRN не останется
ничего читать.
- Если два равенства в рабочем документе
используют WRITE или WRITEPRN с одним
аргументом, данные из второго равенства
запишутся поверх данных из первого. Используйте
APPEND или APPENDPRN, если нужно сохранить первую
порцию данных. Эти функции дописывают новые
данные к существующему файлу.
Таблица ниже описывает эти шесть функций. В
этой таблице:
- A
обозначает массив (вектор или матрицу).
- v
i обозначают отдельные элементы вектора v.
- file
— любое допустимое имя переменной Mathcad.
- i
— дискретный аргумент.
Функции Read , Write и Append могут
использоваться с дискретными аргументами,
остальные — нет.
Функция |
Значение |
READ( file) |
Считывает значение из файла
данных. Возвращает скаляр. Обычно используется
следующим образом: vi :=READ( file) |
WRITE( file) |
Записывает значение в файл
данных. Если файл уже существует, заменяет его на
новый файл. Должна использоваться в определениях
следующего вида: WRITE( file) := vi |
APPEND( file) |
Дописывает значение к
существующему файлу. Должна использоваться в
определениях следующего вида: APPEND( file) := vi
|
READPRN( file) |
Читает структурированный файл
данных. Возвращает матрицу. Каждая строка в файле
данных становится строкой в матрице. Число
элементов в каждой строке должно быть
одинаковым. Обычно используется следующим
образом: A : = READPRN( file) |
WRITEPRN( file) |
Записывает матрицу в файл
данных. Каждая строка матрицы становится строкой
в файле. Должна использоваться в определениях
следующего вида: WRITEPRN( file) := A |
APPENDPRN( file) |
Дописывает матрицу к
существующему файлу. Каждая строка в матрице
становится новой строкой в файле данных. Должна
использоваться в определениях следующего вида:
APPENDPRN( file) := A. Существующий файл должен
иметь столько же столбцов, как и матрица A. |
Аргументы функций доступа к файлам
Аргументы всех функций в предыдущей таблице
называются файловыми переменными. file variable В
отличие от других переменных файловая
переменная содержит в себе не числовое значение,
а имя файла. За исключением случаев, описанных
ниже в разделе “Импортирование данных из других
каталогов”, имя файла, соответствующего
файловой переменной, есть просто имя этой
переменной с расширением .dat или .prn
.
Выбор расширения зависит от функции,
используемой с файловой переменной. Например,
если имя файловой переменной — papageno, и
используется READPRN или WRITEPRN, то Mathcad будет
работать с файлом, называемом papageno.prn и
находящемся в текущем каталоге. Если же
использовать READ либо WRITE, Mathcad будет
работать с файлом, называемым papageno.dat и
находящемся в текущем каталоге.
Можно отменять расширения по умолчанию .dat
и .prn, используя в качестве
файловой переменной имя файла с расширением.
Например, чтобы читать из файла papageno.txt,
просто напечатайте имя с раширением в качестве
файловой переменной. Точка исчезнет, и появится
запись “papagenotxt”.
Будьте внимательны, используя слишком длинные
имена файловых переменных. Хотя Mathcad допускает
создание длинных имён файловых переменных вроде resistanceparallel,
они не могут соответствовать именам файлов,
потому что содержат слишком много символов. В
этом случае Mathcad ищет файл, чьё имя получается
усечением имени файловой переменной. Например,
READPRN(resistanceparallel) указывает Mathcad читать
из файла с названием resistan.par .
Если файл, с которым нужно работать, размещен в
каталоге ином, нежели каталог по умолчанию,
нельзя просто напечатать полный путь к файлу
между круглыми скобками одной из функций
доступа. Дело в том, что функция доступа есть
математическое выражение, и в результате Mathcad
истолковывает нажатие клавиш \ или : при
попытке указать символ дисковода или каталог как
указание создать квадратный корень или оператор
определения.
Чтобы обойти эту трудность, Mathcad позволяет
присвоить имя файла файловой переменной подобно
тому, как число присваивается обычной
переменной. Эта возможность обсуждена в
следующем разделе.
|