在更改大量数字控件时替代 case 语句

Alternative to case statments when changing a lot of numeric controls

我是 LabVIEW 的新手,但我确实有其他编程语言的经验,例如 Python 和 C++。我要询问的代码是有效的,但是将它们放在一起时涉及很多手动工作。基本上我从文本文件中读取并根据文本文件中的值更改控制值,在本例中为 40 个值。

我已将其设置为从文本文件中提取并用逗号分隔字符串。然后我循环遍历所有值并设置指标以读取相应的值。我必须创建 40 个单独的案例陈述才能实现这一目标。我确信有更好的方法可以做到这一点。有人有什么建议吗?

让我们从一些优化开始:

您的数据文件似乎只包含 40 个数字。您可以将一个一维 DBL 数组连接到字符串到数组 VI 的默认输入端,您将得到一个一维数组。不需要二维数组。

其次,无需将 FOR 索引值转换为字符串,CASE 也接受整数。

现在,关于您的问题:最简单的解决方案是将值显示为数组,就像它们来自字符串到数组 VI 一样。

但我想每个值都有特殊含义,并且您想以某种方式显示它 name/description。在这种情况下,创建一个包含 40 个值的集群,根据需要编辑它们的标签,并确保它们在集群中的顺序与文件中值的顺序相同。 然后,通过数组到簇 VI 将一维值数组连接到该簇。

如果您打算使用文本文件来存储和加载值,请将簇数据转换为 JSON 和 vv。可能适合您,因为它也将集群的标签传输到文件中。 (然而,更改标签是一个问题,那么)

可以进行以下改进(除了 sweber 的建议之外:

  1. 如果文件只包含数据,没有 "label - value" 格式,那么您可以将其读取为 csv(逗号分隔值)格式,实际上只读取第一行。
  2. 目前,您根据顺序设置值。在这种情况下,您可以:创建对所有指标的引用,以正确的顺序将它们构建到数组中,在 For 循环中通过 属性 节点值将值分配给指标。 总的来说,我支持sweber,如果是一些键值数据,那么最好使用JSON格式,或者支持这种结构的.ini文件格式。