String 连接到Case结构的字符串始终为默认值-LabVIEW

String 连接到Case结构的字符串始终为默认值-LabVIEW,string,structure,case,default,labview,String,Structure,Case,Default,Labview,我试图从仪器中读取读数,如果读数与某些字符串相匹配(来自仪器编程手册),我想将指示器设置为特定值,每个可能的字符串都不同。案例结构似乎是最好的选择,所有可能的读数都是案例。我这样做了,并添加了“”作为默认情况,以发送不匹配情况的值。问题是,如果我将读出字符串连接到case结构,无论读出什么,它总是执行默认的case(是的,在任何人询问之前,我验证了读出字符串与我的case完全匹配)。为了检查case结构是否正常工作,我将一个常量连接到case结构,它工作正常,即使我将值从读出字符串复制并粘贴到常

我试图从仪器中读取读数,如果读数与某些字符串相匹配(来自仪器编程手册),我想将指示器设置为特定值,每个可能的字符串都不同。案例结构似乎是最好的选择,所有可能的读数都是案例。我这样做了,并添加了“”作为默认情况,以发送不匹配情况的值。问题是,如果我将读出字符串连接到case结构,无论读出什么,它总是执行默认的case(是的,在任何人询问之前,我验证了读出字符串与我的case完全匹配)。为了检查case结构是否正常工作,我将一个常量连接到case结构,它工作正常,即使我将值从读出字符串复制并粘贴到常量。另外,我确保选择了不区分大小写的匹配,所以这不是问题所在。有人知道为什么会这样吗?如有必要,我可以发布示例VI。

发现问题。将字符串转换为字节数组并查看ascii值。显然,尽管指示器上没有新行,但其中一个在末尾有一个新行字符。修复了通过修剪字符串上的空白进行比较的问题。注意这一点。

要准确检查字符串中的内容,可以将其连接到一个指示器,右键单击该指示器并选择“\”代码显示。然后将显示代码,如换行符的\n、ASCII 0的\00、ASCII 255的FF等。

更新:实际上,当我使用常量以外的任何形式时,任何形式(大小写、相等等)的比较都会失败。。不是很有用。