Добавить текст в Table Control

Простейшие вопросы в области инженерной разработки

Добавить текст в Table Control

Postby engineer_7 on 02 Aug 2017, 12:41

Добрый день! Посоветуйте пожалуйста, как решить следующую задачу:

1. Необходимо выводить текст по условию(по нажатию различных кнопок) в table control.
1.1. Если table control пустой то записываем в первую строку сообщение.
1.2. Если первая строка не пустая, переходим на вторую и так далее.
1.3. Если кнопку отжали, то та строка в которую записались события о нажатии кнопки, должна стать пустой.

В общем, мне примерно представляется алгоритм следующим образом(предположим, что произошло нажатие кнопки):
1) Проверяем первую строку, если пустая, то записываем, если нет, переходим на следующую(вот собственно как реализовать автоматический переход если у нас 1000 заполненных строк).
2) Кнопку отжали, находим записанное значение(просто сравниваем значение в ячейке со значением с кнопки, повторяющихся значений в table control не будет), делаем строку пустую(а как ее целиком удалить? т.е. сместить индексы последующих элементов на 1 влево, при этом недорого и быстро).

И еще меня интересует возможность скрывать пустые строки, то есть изначально задать размеры table control, если что то записываем и наша запись выходит за размеры table control, то просто пользуемся полосой прокрутки для просмотра информации. Иначе, если например у нас всего одна строка, а например размеры table control рассчитаны на 5 таких строк, то мы растягиваем эту строку по размеру table control.
engineer_7
beginner
beginner
 
Posts: 27
Joined: 20 Jul 2017, 12:35
LabVIEW Version: 14
Karma: 0

Re: Добавить текст в Table Control

Postby Artem.spb on 02 Aug 2017, 12:55

table control - это 2D массив строк.
так что мудрить с поиском последней нет необходимости - достаточно добавить 1d массив в конец имеющегося.
С удаление маналогично - удалить строку/столбец из массива и отправить его (массив) обратно в индикатор.

Размер коонтрола программно можно задавать свойствами Number of Columns/Rows
http://zone.ni.com/reference/en-XX/help ... p/table_p/
Artem.spb
expert
expert
 
Posts: 1184
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 212
CLD hardware I/O VIP freelance

Re: Добавить текст в Table Control

Postby engineer_7 on 02 Aug 2017, 14:09

Artem.spb wrote:table control - это 2D массив строк.
так что мудрить с поиском последней нет необходимости - достаточно добавить 1d массив в конец имеющегося.
С удаление маналогично - удалить строку/столбец из массива и отправить его (массив) обратно в индикатор.

Размер коонтрола программно можно задавать свойствами Number of Columns/Rows
<!-- m --><a class="postlink" href="http://zone.ni.com/reference/en-XX/help/371361J-01/lvprop/table_p/">http://zone.ni.com/reference/en-XX/help ... p/table_p/</a><!-- m -->
И как это можно сделать?
engineer_7
beginner
beginner
 
Posts: 27
Joined: 20 Jul 2017, 12:35
LabVIEW Version: 14
Karma: 0

Re: Добавить текст в Table Control

Postby engineer_7 on 02 Aug 2017, 14:25

engineer_7 wrote:
Artem.spb wrote:table control - это 2D массив строк.
так что мудрить с поиском последней нет необходимости - достаточно добавить 1d массив в конец имеющегося.
С удаление маналогично - удалить строку/столбец из массива и отправить его (массив) обратно в индикатор.

Размер коонтрола программно можно задавать свойствами Number of Columns/Rows
<!-- m --><a class="postlink" href="http://zone.ni.com/reference/en-XX/help/371361J-01/lvprop/table_p/">http://zone.ni.com/reference/en-XX/help ... p/table_p/</a><!-- m -->
И как это можно сделать?
Реализовал с помощью build array, теперь вопрос о том как удалить добавленный массив.
engineer_7
beginner
beginner
 
Posts: 27
Joined: 20 Jul 2017, 12:35
LabVIEW Version: 14
Karma: 0

Re: Добавить текст в Table Control

Postby Artem.spb on 02 Aug 2017, 15:21

как ни странно, в той же палитре array есть и функция delete from array, указываете ей номер столбца/строки, и она его удаляет.
Artem.spb
expert
expert
 
Posts: 1184
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 212
CLD hardware I/O VIP freelance

Re: Добавить текст в Table Control

Postby engineer_7 on 02 Aug 2017, 15:39

Artem.spb wrote:как ни странно, в той же палитре array есть и функция delete from array, указываете ей номер столбца/строки, и она его удаляет.
Артем, спасибо за терпение, разобрался я :D
Image
загрузка картинок
engineer_7
beginner
beginner
 
Posts: 27
Joined: 20 Jul 2017, 12:35
LabVIEW Version: 14
Karma: 0

Re: Добавить текст в Table Control

Postby Artem.spb on 02 Aug 2017, 15:58

Изображения нужно загружать на сервер.

И :labview:, это не паскаль, тут нет надобности заводить переменные.
Вот два варианта решения без них. Во втором случае надо бы ещё проверять индекс на выход за диапазаоны массива, иначе программа может уйти в бесконечный цикл, если строка так и не будет найдена.
table.png
Artem.spb
expert
expert
 
Posts: 1184
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 212
CLD hardware I/O VIP freelance

Re: Добавить текст в Table Control

Postby engineer_7 on 02 Aug 2017, 18:01

Artem.spb wrote:Изображения нужно загружать на сервер.

И :labview:, это не паскаль, тут нет надобности заводить переменные.
Вот два варианта решения без них. Во втором случае надо бы ещё проверять индекс на выход за диапазаоны массива, иначе программа может уйти в бесконечный цикл, если строка так и не будет найдена.
<!-- ia0 -->table.png<!-- ia0 -->
Артем, понял Вас, исправил. А хотел бы узнать, как в labview влияют на производительность и память дополнительные переменные(локальные/глобальные)? Может есть какие нибудь статьи по написанию качественного производительного кода?
engineer_7
beginner
beginner
 
Posts: 27
Joined: 20 Jul 2017, 12:35
LabVIEW Version: 14
Karma: 0

Re: Добавить текст в Table Control

Postby Artem.spb on 02 Aug 2017, 21:28

Переменные в разумных пределах тормозят не очень, хотя каждое обращение к переменной может требовать выделения памяти под ней, но на современных машинах при малых объёмах обрабатываемых данных вы этого не заметите.
Дело в другом, :labview: - это другой стиль программирования, потоком данных.
Наличие переменных затрудняет отладку, потому что кто его знает, где ещё эта переменная пишется. плюс может возникнуть гонка приоритетов, если к переменной обращаются одновременно несколько функций.

Из книг могу посоветовать Питер Блюм "LabVIEW: стиль программирования"
Правда я её читал лет 10 назад, и появилось ли что-то новее и лучше, не знаю.
Artem.spb
expert
expert
 
Posts: 1184
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 212
CLD hardware I/O VIP freelance


Return to Для чайников

Who is online

Users browsing this forum: Google and 9 guests

cron