Функции > Чтение и запись файлов > Пример. Работа с файлами PRN
Пример. Работа с файлами PRN
Продемонстрируйте различные способы использования функций, связанных с PRN, чтобы увидеть влияние переменных системы PRN на создание файлов .prn.
1. На вкладке Форматирование формул (Math Formatting) в группе Результаты (Results) выберите для параметра Точность отображения (Display Precision) значение 10.
2. Используйте функцию identity, чтобы определить матрицу, а затем заполните ее первый столбец числами.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Вычислите матрицу M.
Щелкните для копирования этого выражения
Задано значение Точность отображения (Display Precision) 10, поэтому PTC Mathcad ограничивает отображение всех чисел в результатах 10 разрядами десятичной дроби.
PRNPRECISION < PRNCOLWIDTH
1. Вычислите PRNPRECISION и PRNCOLWIDTH, чтобы показать их значения по умолчанию.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию WRITEPRN, чтобы записать матрицу M в файл .prn.
Щелкните для копирования этого выражения
3. Используйте функцию READPRN для чтения записанного файла.
Щелкните для копирования этого выражения
Поскольку для PRNPRECISION задано значение 4, числа округляются так, чтобы в результатах отображалось не более 4 ненулевых разрядов. Верхние шесть чисел содержат больше 4 разрядов и округляются до 4 ненулевых разрядов. Число 66.66 содержит точно четыре разряда и поэтому остается неизменным. Число 99.999 также округляется до 4 разрядов и превращается в 100.
4. Откройте файл 1.prn в любом текстовом редакторе и просмотрите его содержимое. Цвета подсветки добавлены, чтобы показать границы столбца, а знаки крышечки добавлены, чтобы показать ширину столбцов.
Каждый столбец матрицы вне зависимости от ширины его элементов данных записывается в соответствующий столбец файла.
Если ширина данных превышает ширину столбца, как в строках 3-5, то данные в соседних столбцах выглядят как смещенные вправо. Это только визуальный эффект, который не влияет на координаты данных строка-столбец.
Поскольку для PRNPRECISION задано значение 4, а для PRNCOLWIDTH значение 8, записанные данные, содержащие четыре или меньше разрядов, умещаются в столбце и отображаются с выравниваем по правому краю. Обратите внимание, что десятичная точка занимает позицию в столбце.
Знак числа также занимает позицию в столбце Если знак числа отрицательный, он печатается слева от числа, как показано в строке 4. Если знак числа положительный, он не печатается и местозаполнитель знака остается пустым, как показано в строках 3 и 5.
Числа, у которых целая часть содержит более 4 разрядов, преобразуются в экспоненциальную нотацию, показывающую 1 разряд целого числа и 3-разрядную десятичную дробь, за которой следует e+показатель степени. Обратите внимание на то, что каждый из этих элементов занимает одну позицию в столбце, как можно видеть в строках 3-5.
PRNPRECISION = PRNCOLWIDTH
1. Задайте для PRNPRECISION значение 8 и запишите матрицу M в другой файл .prn.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию READPRN для чтения записанного файла .prn.
Щелкните для копирования этого выражения
Поскольку для PRNPRECISION задано значение 8, числа округляются так, чтобы в результатах отображалось не более 8 разрядов. Верхние шесть чисел содержат больше 8 разрядов и округляются до 8 разрядов. Числа 66.66 и 99.999 содержат меньше 8 разрядов и остаются неизменными.
3. Откройте файл 2.prn в любом текстовом редакторе и просмотрите его содержимое.
Поскольку для PRNPRECISION и PRNCOLWIDTH задано значение 8, записанные данные, имеющие в общей сложности восемь разрядов, не умещаются в столбце из 8 позиций, потому что для знака и десятичной точки требуются две дополнительные позиции. Это заставляет данные в строках 1-4 и 6 визуально сдвигаться на данные в соседних столбцах на 2 позиции.
Для данных в строке 5 требуется 7 дополнительных позиций, что приводит к визуальному сдвигу данных в соседних столбцах вправо на то же число позиций.
Данные в строках 7 и 8 содержат меньше 8 цифр и умещаются в столбце из 8 позиций.
PRNPRECISION > PRNCOLWIDTH
1. Задайте для PRNCOLWIDTH значение 4 и запишите матрицу M в другой файл .prn.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию READPRN для чтения записанного файла .prn.
Щелкните для копирования этого выражения
3. Откройте файл 3.prn в любом текстовом редакторе и просмотрите его содержимое.
Поскольку для PRNPRECISION задано значение 8, а для PRNCOLWIDTH - значение 4, записанные данные, содержащие в общей сложности восемь цифр, не умещаются в столбце из 4 позиций.
Для записанных данных в строках 1-4 и 6 требуется 10 позиций, что заставляет данные визуально сдвигать соседние столбцы вправо на то же число позиций.
Для данных в строке 5 требуется 5 дополнительных позиций, что приводит к визуальному сдвигу данных в соседних столбцах вправо на то же число позиций. Каждый столбец был подсвечен, чтобы показать его элементы. Вокруг последнего столбца нарисована рамка.
Слияние строк для создания имени файла, используемого с WRITEPRN
1. Определите матрицу, которая описывает деталь.
Щелкните для копирования этого выражения
2. Извлеките серийный номер детали.
Щелкните для копирования этого выражения
3. Используйте функцию concat, чтобы выполнить слияние для полного пути файла.
Щелкните для копирования этого выражения
4. Используйте WRITEPRN, чтобы записать данные в новый файл.
Щелкните для копирования этого выражения
5. Используйте функцию READPRN для чтения этого файла.
Щелкните для копирования этого выражения
6. Используйте функцию READTEXT для чтения того же файла.
Щелкните для копирования этого выражения
Функция READTEXT возвращает записанные данные в другой форме, чем возвращаемые функцией READPRN.
Верхние четыре строки содержат необработанную информацию и создаются функцией WRITEPRN.
Первая строка содержит информацию об инструменте, который был использован для записи данных.
Вторая строка содержит информацию о дате и времени.
Третья строка пустая.
Четвертая строка содержит размеры исходной матрицы данных.
Пятая строка содержит данные исходной матрицы.
Элементы NaN используются для заполнения всех пустых элементов возвращаемой матрицы.
Было ли это полезно?