This is topic Дозапись данных в dat-файл in forum Документирование в TRACE MODE 6 и в T-FACTORY 6 / Document generation in TRACE MODE 6 and T-FACTORY 6 at Форум TRACE MODE: техническая поддержка.
Для записи текущих аргументов канала CALL использую атрибут "Запись в файл (129, WFile)". Запись данных происходит успешно. Однако, результирующий файл каждый раз создается заново. Есть ли возможность настроить данную операцию так, чтобы данные дописывались в конец существующего файла, не уничтожая уже имеющиеся данные в файле?
Спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Такой возможности нет.
Posted by Gennady (Участник № / Member № 6305) on :
Добрый день!
При использовании канала CALL и атрибута 129 запись для сохранения аргументов в файлы *.dat аргументы типа Lreal сохраняются с округлением после запятой Где можно изменить настройки для сохранения в файл .dat аргументов Lreal с максимальным количеством разрядов после запятой т. е. без округления?
Posted by Nico (Участник № / Member № 5342) on :
если аргумент константа( не привязан к каналу) то в LReal аргументах плавающее число хранится как Real(4 байта)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Сл-но, надо привязать LReal-аргумент канала CALL к атрибуту канала DFloat, например, к ВХОДНОМУ_ЗНАЧЕНИЮ.
Posted by Gennady (Участник № / Member № 6305) on :
У меня программа выдает результаты вычислений в аргументы экрана, и в канал CALL c типом вызова ChGroupReq для записи результатов в фал .dat. Проблема в том что на экране я могу выводить любое количество разрядов (цифр) после точки просто указывая количество цифр после точки (например: %.4f или %.15f)используя настройки формата отображения и никакого канала DFloat для этого не требуется. Но когда мы открываем файл *.dat то там совсем другая картина и в место как на экране( например: 103.250524638293154), будет записано 103.25 что нас не устраивает.
Извините, не совсем понятен ваш ответ. У меня 133 аргумента и будет еще больше, мне нужно для каждого создавать канал DFoat?
К тому же все аргументы уже привязаны к программе и там нет возможности сделать вторую привязку!?
Мне всего лишь нужно чтобы дробная часть значения аргументов точно записывались в файл, со всеми цифрами после точки (у Lreal их 15).
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Аргумент канала CALL, не привязанный к атрибуту канала с типом данных DFloat, всегда будет передавать 4-байтовое число (на отображение, в документ, на запись в файл). На экране значение такого аргумента (с типом данных LREAL) может отображаться с большим числом знаков, но реально точное отображение будет в пределах формата Float.
Есть смысл уточнить, для чего Вы хотите сохранять в файле вычисленное значение в формате DFLOAT.
Posted by Gennady (Участник № / Member № 6305) on :
Дело в том что полученные на экране результаты вычислений перепроверяют, используя данные записанные в файле и результаты проверки отличаются в третьем четвертом знаке после точки. Если же у исходных данных брать все значения после точки с экрана, то всё точно получается.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Различие в точности отображения на экране и записи в файл уже объяснены. Для чего надо записывать вычисленные данные в файл? Как это будет использоваться в реальном процессе?
Posted by Gennady (Участник № / Member № 6305) on :
Данные из файла экспортируются в Excel для формирования протокола.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если не использовать каналы DFLOAT в качестве носителей данных соответствующего формата (как было предложено в посте от 16.03.2015), экспортировать в файл данные в формате DFLOAT не удастся.