因為任何數據采集后都希望能做出圖表來,在LabVIEW里寫了一個串口的程序,無奈輸出的是字符串,而作圖的輸入數據必須要是數值類型,找遍了控件也沒看見將字符串轉換成相應ASCII碼的控件。于是上網搜索,真是眾說紛紜,很多人說用十六進制數字符串轉換成數值的控件,也有人說用掃描字符串的控件,本人也是初學,發現這兩種方法并不能實現我的目標。 雖然我的字符串輸入控件選擇的是顯示16進制數,但數據流實際上記錄的是該字符串的ASCII碼。所謂將十六進制數字符串轉換為數值,其實是指正常顯示時顯示為16進制數。舉個例子,ASCII碼的0x31,對應于字符“1”,如果輸入0x31即“1”,則用上述控件就會將該字符串轉換為0x01。
本文引用地址:http://www.104case.com/article/201701/336582.htm 而第二個說法提到的掃描字符串,其實是將字符串中的數字提取出來,而并不是得到該字符串的ASCII碼。比如,ab123c,用一定的格式說明就可以把123提取出來,即輸入“ab123c”,可以得到數字123。這種方法也可以提取浮點數,具體可以參見LabVIEW的幫助文檔。
將字符串轉換成相應的ASCII碼,我用了挺復雜的方法,如果有幸被高手看到此文章希望能抽出寶貴的時間留下更好的方法。因為我是要做圖,于是每次循環的時候我只要字符串的最后一個字符的ASCII碼,所以我先將該字符分離出來,然后將它轉換成字節數組,再提取數組元素,就得到了該字符對應的那個ASCII碼。具體如下:

第一個小方框是“字符串”->“字符串長度”
第二個是“字符串”->“截取字符串”
第三個小框里有U8的是“字符串”->“字符串/數組/路徑轉換”->“字符串字節數組轉換”
第四個是“數組”->“索引數組”
評論