字符串編程是LABVIEW的編程難點之一,有的時候,用一整天的時間做一個字符串處理的VI是常有的事,尤其是對各類專用設備特殊的通訊協(xié)議和禎結(jié)構(gòu).
從最簡單的無符號10進制整數(shù)談起
1.無符號DEC整數(shù)
比如字符串"1234",顯然它包括的全部是數(shù)字,而不是字符(如A,B,C等),問題是如何在程序中判定.
無符號10進制整數(shù)只包含0,1..9,因此可以借助C語言的方法,用ASCII值來判定.0的ASCII是0X30,
1..9 分別是0X31..0X39,通過把字符串轉(zhuǎn)換成U8數(shù)組,U8數(shù)組里保存的是字符的ASCII值.
LABVIEW中提供了判斷10進制字符的節(jié)點,IS DEC DIGIT?,用它可以簡化程序,同時它是個多態(tài)的VI,LABVIEW專門有一個例子程序說明它的使用方法,需要說明的是對于一個字符串,它只判斷第一個字符.
看看它接受的輸入類型.
因此,更簡單地判斷10進制無符號整數(shù)的方法如下圖所示:
同理,LABIVEW同時提供了判斷16進制,8禁止的節(jié)點,因此可以方便地利用上面的方法判斷是否是16進制和8進制的數(shù)字字符串.
LABVIEW沒有提供判斷二進制字符串的方法,不過只需要把上面的0X39改成0X31就可以判斷是否是二進制字符串.
2.無符號浮點數(shù)的判定
無符號的浮點數(shù),比如1.234與無符號整數(shù)比較,只需要判定是否包含小數(shù)點就可以了,另外有的整數(shù)用逗號表示千位分割符號,也可以采用類似的方法判定.
3.LABVIEW特殊類型表示方法
LABVIEW有幾種數(shù)值表示方法
這樣判斷起來就非常復雜,需要包括+ - E K M等的判斷.
下面提供一種通用的判斷方法,雖然通用,相應效率也比較低,如果知道確切格式,用上面的方法比較合適
可以直接判斷+,-,科學記數(shù)法,不支持SI,逗號等