Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Аргументы функций доступа к файлам



WRITE(“ papageno.txt ”).

Путь текущей директории следует указать полностью.

В отличие от других равенств равенства, содержащие функции доступа к файлам, не обрабатываются автоматически. Если изменить файл данных или присоединить другой файл к файловой переменной, это не повлияет на вычисления. Чтобы произошло соответствующее обновление вычислений, нужно либо щёлкнуть в равенстве и нажать [F9], либо выбрать Пересчитать всё из меню Математика. Можно считать, что функции доступа к файлам всегда находятся в ручном режиме вычислений. update;file access functions

Чтение данных функцией READ

Рисунок 10 показывает два способа использования функции READ для чтения данных из файла.

Первое равенство с использованием READ присваивает переменой N первое значение из файла данных sizefile.dat. Второе равенство с использованием READ первыми 100 числами из файла данных papageno.dat.

Когда Mathcad читает данные с помощью READ:

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

Если равенство содержит READ и дискретную переменную, Mathcad считывает по одному значению из файла для каждого значения дискретного аргумента. Если данных меньше, чем значений дискретного аргумента, Mathcad перестаёт считывать данные для лишних значений дискретного аргумента. Если значений дискретного аргумента меньше, чем данных, Mathcad игнорирует лишние данные в файле.

Равенство не может включать более чем одну функцию READ.

Рисунок 10: Функция READ.

Запись данных с помощью функций WRITE и APPEND

Рисунок 11 показывает, как использовать функцию WRITE, чтобы записать данные в файл.

Первое равенство с использованием WRITE записывает число в файл данных sizefile.dat. Второе равенство с WRITE N чисел в файл данных papageno.dat, по одному числу для каждого значения дискретного аргумента i. Когда Mathcad записывает данные в файл, он отделяет последовательные значения пробелами, а также вставляет прерывания строки, сохраняя длину строк менее 80 символов. При использовании WRITE все значения передаются файлу с максимальной точностью, независимо от глобального формата документа.

       
   
 


Рисунок 11: Запись данных с помощью WRITE. Рисунок12: Чтение и запись файлов данных.

Mathcad игнорирует единицы размерности при записи данных в файл.

Подобно функции READ, функция WRITE заново открывает файл и вновь переходит к его началу в каждом новом равенстве.

Если нужно записывать данные в файл из различных уравнений, используйте функцию APPEND вместо WRITE во втором и последующих уравнениях.

Предупреждение: Если функция WRITE используется с одним аргументом в двух равенствах, данные из второго равенства будет записаны поверх данных из первого.

Рисунок 12 показывает документ, который читает данные из файла, выполняет над ними некоторые вычисления и записывает результаты в другой файл.

В этом разделе обсуждается использование функций READPRN, WRITEPRN и APPENDPRN для работы со структурированными файлами. Структурированный файл данных — файл с фиксированным числом значений на строке. Например, если экспортировать прямоугольную область из электронной таблицы в текстовый файл, возникающие в результате строки и столбцы чисел сформируют структурированный файл.

Считывание матрицы с помощью функции READPRN

Предположим, что имеется ASCII-файл, содержащий данные, показанные ниже. Эти данные могут быть взяты из электронной таблицы или из любого другого источника.

Рисунок 13 показывает документ Mathcad, который считывает эти данные в матрицу.

Функция READPRN читает весь файл данных, определяет число строк и столбцов, и создает матрицу из этих данных.

Когда Mathcad читает данные с помощью функции READPRN:

Каждый раз READPRN читает файл данных целиком.

Все строки в файле данных должны содержать одинаковое количество значений. (Строки, не содержащие значений, игнорируются). Если строки в файле имеют различное число значений, Mathcad, отмечает функцию READPRN сообщением “ ошибка файла ”.

Функция READPRN игнорирует текст в файле данных.

Результатом чтения файла данных является m -на- n матрица, где m есть число строк, содержащих данные в файле, и n есть число значений в строке. Чтобы создать матрицу из значений в файле данных, используйте равенство, подобное M: = READPRN (file). Не используйте нижние индексы для M. Функция READPRN возвращает матрицу, поэтому нижние индексы излишни.

Предупреждение: Каждая строка в файле данных должна содержать одинаковое число значений. Если оставить промежутки там, где Mathcad ожидает значение, функция READPRN не сможет прочитать файл. Mathcad определяет конец одного и начало следующего значения, ища пробелы или запятые.

       
   
 


Рисунок 13: Считывание таблицы данных в матрицу. Рисунок 14: Запись данных в структурированный файл данных.

Запись данных при помощи функций WRITEPRN и APPENDPRN

Рисунок 14 показывает, как использовать функцию WRITEPRN, чтобы записать данные в структурированный файл данных.

Когда Mathcad обрабатывает документ из Рисунка 14, создается файл данных, содержащий следующие значения:

В отличие от WRITE функция WRITEPRN записывает данные в виде столбцов. Обратите внимание, что, поскольку для PRNPRECISION установлено значение четыре, числа записаны с четырьмя знаками после запятой. Поскольку значение PRNCOLWIDTH равно восьми, каждый столбец имеет ширину в восемь символов. Так как PRNPRECISION и PRNCOLWIDTH могут изменяться независимо, нужно не упустить из виду, что ширина столбца должна быть такой, чтобы разместились все необходимые цифры вместе с пробелом, разделяющим отдельные значения.

Когда используется функция WRITEPRN:

Равенства, содержащие WRITEPRN, должны быть следующего вида. Слева записывается WRITEPRN(file), где file — имя файловой переменной, затем следует символ определения (:=) и выражение, возвращающее матрицу. Не используйте дискретные аргументы или нижние индексы с WRITEPRN.

Каждое новое равенство записывает новый файл. Если два равенства пишут в один файл, данные, написанные вторым равенством уничтожат данные, написанные первым. Используйте APPENDPRN, если нужно дописать значения к файлу вместо того, чтобы перезаписать файл. APPENDPRN function

Встроенные переменные PRNCOLWIDTH и PRNPRECISION определяют формат файла данных, создаваемого Mathcad. Текущее значение PRNCOLWIDTH определяет ширину столбцов (в символах). Текущее значение PRNPRECISION определяет число используемых значащих цифр. По умолчанию PRNCOLWIDTH = 8 и PRNPRECISION = 4. Чтобы изменить эти значения, выберите Встроенные переменные из меню Математика или поместите соответствующие определения в документ Mathcad выше места использования WRITEPRN, как показано на Рисунке 15.

Используя функцию augment, можно объединять отдельные переменные в массивы, и записывать их все в файл данных. Рисунок 16 показывает, как это делать.

 
 


Рисунок 15: Документ, который создаёт файл данных со столбцами шириной в 10 символов, содержащий числа с 5 значащими цифрами. Рисунок 16: Запись нескольких векторов, объединённых вместе.

Преимущества использования READPRN и WRITEPRN

Использование READPRN, как правило, предпочтительнее использования READ. Когда данные структурированы в столбцы, READPRN переводит данные в Mathcad в легкодоступной форме.

Если некоторые строки в файле данных имеют большее количество значений, чем другие, данные могут быть потеряны. Используйте текстовый редактор, чтобы заменить пропущенные значения на нули перед использованием READPRN.

Функция READ используется для файлов, в которых значения одной переменной разбросаны по нескольким строкам. Таковы файлы, созданные WRITE, которая располагает столько чисел на строке, сколько строка может вместить.

Помните: используйте нижний индекс, являющийся дискретным аргументом, чтобы читать с помощью READ; не используйте нижний индекс, чтобы читать с помощью READPRN.

Обычно WRITEPRN производит более читаемые файлы, чем WRITE, поскольку данные в них аккуратно расположены в строках и столбцах. С другой стороны, WRITE производит меньшие файлы, чем WRITEPRN, потому что ей не нужно добавлять пробелы для выравнивания данных.

Используйте WRITE вместо WRITEPRN, когда требуется напихать так много значений, сколько возможно, в малый файл данных.





Дата публикования: 2014-11-28; Прочитано: 690 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...