Форматирование колонок в Array To Spreadsheet String

Простейшие вопросы в области инженерной разработки
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

Доброе утро!
Имеется массив данных, который надо сохранить в файл. Функция Array To Spreadsheet String меня вполне устраивает, но проблема в том, что числа надо сохранять с разной точностью в зависимости от номера колонки. Например, вначале идут часы, минуты и секунды, которые целые; далее - измеренные значения, которые Single, но с разной точностью измерений. Насколько могу понять, строка форматирования на входе функции описывает единый формат для всех элементов массива. Можно ли это обойти?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение IvanLis »

temples писал(а):Можно ли это обойти?
Форматировать отдельно каждый столбец.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение AlexanderKonoval »

в массив строк вбиваете форматы соответственно для каждого столбца.
Вложения
array-to-spss.vi
(7.47 КБ) 198 скачиваний
колдооооовствооооо! (С)
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

IvanLis писал(а):Форматировать отдельно каждый столбец.
Это понятно. Разобрать на колонки, отформатировать и собрать. Но с помощью Array To Spreadsheet String это легко не получается, т.к. склеивать надо именно колонки. Как раз, пример от AlexanderKonoval даёт на выходе транспонированную таблицу.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение AlexanderKonoval »

мне кажется, вы не совсем верно описали задачу. я так понимаю, что вам надо каждый элемент массива отформатировать, просто для каждого столбца правило форматирования своё.
если это так - то вот.
Вложения
array-to-spss.vi
(10.69 КБ) 172 скачивания
колдооооовствооооо! (С)
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

AlexanderKonoval писал(а):для каждого столбца правило форматирования своё.
Именно так! И я как раз хотел избежать реализации "в лоб" с помощью Format Into String, считая её слишком медленной. Скажем, в том же Фортране мы можем одним форматом задать форматирование для целой строки переменных разных типов, например: format (3i6,3x,a1,2i6,3x,a1)
Вот я и надеялся, что и в Array To Spreadsheet String можно аналогично сделать.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение AlexanderKonoval »

Array To Spreadsheet String превращает массив в строку, что очевидно из названия.
предполагаю, что может быть и другое решение, но я его не знаю. возможно, мастера манипулирования данными подскажут что-то получше.
колдооооовствооооо! (С)
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение Borjomy_1 »

И я как раз хотел избежать реализации "в лоб" с помощью Format Into String, считая её слишком медленной.
А как вы думаете, внутри Array To Spreadsheet String форматируется строка? Все также, через Format Into String. Так что никакого выигрыша с манипуляциями через Array To Spreadsheet String вы не получите.
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

Я, конечно, догадывался, что не всё так хорошо, как хотелось бы. Но объективного сравнения не проводил.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение Borjomy_1 »

Можно попробовать самому собирать строку с помощью функций типа "Number To Fractional String"
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

Думаю, так и поступлю. Строки буду формировать в промежутки между поступлением данных, так что когда подойдёт очередь записи буфера, количество потребных операций останется незначительным.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение AlexanderKonoval »

у меня обычно работа с железом в одном цикле, обработка полученных от железа данных во втором, а запись в третьем. Обрабатывать данные по мере их поступления, по-моему, правильное решение.
думаю, особенно это будет актуально, учитывая вашу соседнюю тему, там вы намекали на довольно большие обьёмы данных.
колдооооовствооооо! (С)
temples
assistant
assistant
Сообщения: 103
Зарегистрирован: 25 фев 2015, 10:00
Версия LabVIEW: 14.0f1
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение temples »

AlexanderKonoval писал(а):особенно это будет актуально, учитывая вашу соседнюю тему, там вы намекали на довольно большие обьёмы данных.
Да, у меня при худшем раскладе будут раз в секунду приходить данные с 1000 каналов. При этом, часть должна быть преобразована (например, напряжение с термопары в температуру).
AlexanderKonoval писал(а):у меня обычно работа с железом в одном цикле, обработка полученных от железа данных во втором, а запись в третьем.
А можно на примере? Я-то пишу "линейно" как в текстовых языках. Т.е. свои операции втискиваю в 1 секунду между приходами порций данных. И если формирование отдельной буферной строки меня не тревожит, то сброс всего буфера (примерно 30 Мб) на диск раз в час несколько напрягает. А вдруг за 1 сек не успеет?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение IvanLis »

temples писал(а):А можно на примере? Я-то пишу "линейно" как в текстовых языках.
В текстовых тоже на потоки разбивают, но там реализация сложнее.
Полистайте книгу Питер Блюм | LabVIEW. Стиль программирования, все станет намного прозрачнее.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Форматирование колонок в Array To Spreadsheet String

Сообщение AlexanderKonoval »

как-то так, на быструю руку набросал
Вложения
ex_par_loops.vi
lv13
(21.14 КБ) 158 скачиваний
колдооооовствооооо! (С)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»