这实际上是LabVIEW
中的一个程序,但我可以在labview中编写C
脚本和/或在logic
中模拟与LabVIEW
中相同的C
。也为了吸引更多的答案。所以我主要需要算法。请阅读整个问题。
在我的应用程序中,我有5个变量:
var1 -> type string,
var2 -> type string,
var3 -> type array of strings,
var4 -> type array of strings,
var5 -> type boolean
现在这5个变量控制如何过滤从文件中读取的数据。
因此,我有一个开关箱,它将根据这些输入执行操作。
要控制开关,请执行以下操作:
如果var1为空,则
false
。如果var2为空,则为false。
如果var3是空数组,则
false
。如果var4是空数组,则
false
。如果
false
的var5true
。所以我得到一个5位的组合,所以我可以有32个值,因此32种类型的过滤器,即32种情况!是的。
例如,如果
var1
为空,var2
不为空,var3
不为空,var4
为空,var5
为真,则我有01101(12月13日)。所以我选择了第13个过滤器。编码这真的很忙,所以我想崩溃的案件数量。怎么做?
我要找的是一个算法。
这是labview代码
var1->运算符名称,var2->主管名称,var3->作业ID,var4->多批选择,var5->无效日期。
编辑;
例如
如果var1和var3不为空,那么我必须从文件中读取数据,使其包含var1和var2数据。
例2
现在,如果var1、var3、var5不为空,那么我需要选择数据,这样它将拥有var1、var3和var5共有的数据。
例3
如果我有var1,var3,var4,var5,我需要获取包含var1 var3 var4 var5共有的数据的数据。
四国集团
如果我只有var3,我只需要获取与var3相关的数据。
最佳答案
有很多可能性可以按照你的要求/建议进行改进。
对于您所做的每个测试,都有一个嵌套的case结构。这里有一个建议:如果你有一些更可能失败的测试,把它们放在外面。这样可以优化执行。
您已经拥有的案例结构可以使用范围处理多个案例例如,您可以通过在case选择器框中键入1..10来处理数字1到10。通过使某些案例连续,您可以减少案例的数量。
我不确定您使用的是哪个版本的labview,但是您正在进行的一些测试可以简化一些。例如,我相信在LabVIEW2011和更高版本中,可以使用空数组的特殊测试和空字符串函数的测试。
另外,不要使用5个Insert-Into数组函数,尝试使用一个单独的构建数组函数,该函数被扩展以容纳您拥有的布尔数。
我认为“指数增长”是这里的增长类型,如果你有更多的布尔人案例数量(理论上)是2^(变量数量)。
关于c - 如何破例处理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16806296/