luelyzeng
歲月不饒人,我亦未曾饒過歲月
級別: 工控俠客
|
用5u做了一個套接字通信,接收到的數據是一串字符, 比如: S123,456,789E 應該怎么把三個數據分別通過分隔符","提取分離出來?數據長度是不確定的,但有分隔符把數據分開, 請高手們不吝賜教!萬分感謝!! |
|
---|---|---|
|
cythyx
級別: 家園常客
|
圖片:
提供思路吧,用字符搜索功能,字符刪除,字符提取功能實現。首先去掉第一位S,,比如個1234,456,78910E ,用字符搜索功能搜索“,”在第幾位,比如在第一次搜索","在第五位,然后把前4位提出,然后刪除前5位剩下456.78910E,再次搜“,”提取456,出來,剩下78910E,繼續搜“,”一直循環到搜不到“,” 搜到最后沒有“,”了,剩下的就是78910E,把E前面的提出來就可以了。。 |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
|
大佬66666 |
|
---|---|---|
|
luelyzeng
歲月不饒人,我亦未曾饒過歲月
級別: 工控俠客
|
圖片:
字符串搞出來了,先用搜索INSTR,再用截取MID,最后用刪除STRDEL, 但現在遇到個問題,字符提取出來后,用DVAL指令CPU會報錯,假如解析出來的字符是“123” , DVAL(SM400,'123',D1200,D1500:D);就報錯了,但轉出來的數據又是對的,什么原因呢, |
|
---|---|---|
|
luelyzeng
歲月不饒人,我亦未曾饒過歲月
級別: 工控俠客
|
感謝感謝!!還有個問題,就是整數數據轉成字符串再發送出去,不足的長度前面會有空格,這時候就要算每個數據的長度,然后再用DSTR指令來重新合成需要的字符串,但這樣好像很籠統,有更簡潔的辦法嗎,如果直接 用 DIN_TO_STRING 的話會帶很多空格,最不理解的就是符號還在前面,那么發送出去的數據就成了 “ - 123”類似的了 |
|
---|---|---|
|