微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 新手请教个问题,关于复制来的字符串和自己打的字符串

新手请教个问题,关于复制来的字符串和自己打的字符串

时间:10-02 整理:3721RD 点击:
目前正在尝试对UDP接受到的一个字符串进行处理,如输入  17 @ 6 6 1 0  要把17 和 6610 分离出来
为了实现这个,我先写了个去空格vi,自己在输入框输入  1 7 @ 6 6 1 0   就会得到  17@6610
如下图
但是,当我真正从UDP接收到的时候却毫无作用,并没有去空格。
而且,让我搞不懂的是,在失败的显示框上复制得来的字符串竟然也没能成功,下图这样

也就是说,我自己键盘输入的才能成功,复制过来的就不行?有点不太懂,请教一下,是格式的问题吗?


从UDP接收却失败


应该的结果


可能说的有点迷糊,简单来说,就是如果不是我一个个输入字母,他就不能正确处理

不贴程序,谁能找出问题。

不是程序的问题啊,应该是编码的问题,接收到的是unicode编码字符串,和我直接输入的字符串是不是处理上不一样....

有道理

你把接受来的字符串上面右击,设置为默认值,单独把这个VI(包含发来的字符串)上传试试。

你以为你看不见的字符串就是空格吗?右击字符串显示控件,选择代码显示

大神说得对啊!但我还是不太懂,“1 6”正常的代码显示是1\s6 ,而得到的数据“1 6”却是“3100 3600 ”,不太懂啊?

不不,写错了,是“1\006\00”,刚才换成16进制了

感谢提醒啊,我接受到的看起来是数据“1 6”,代码显示是“1\006\00”,和我自己输入的“1\s6”不一样啊,所以我把看不见的简单当成空格处理了,就处理不了了,可是“1\006\00”到底是个什么编码啊?我现在可以把“\00”替换掉来实现"1 6"变成“16”的目标。

VI就是这样,不好意思刚学写的像狗啃的一样,大致意思就是把“1 6 @ 6 6 1 0 ”给截取成“16”和“6610”2个数字段再处理


我现在还是没办法解决ascii码 \00的情况,暂时只能截取字符串再拼接了

UDP 协议?                                                      
没用 TCP?

简单的小程序,就用了udp

学习学习                                                                     

自己要搞清楚数据类型
串口或TCPip传过来的到底是什么类型
我们一般用的字符串是什么类型

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top