去掉读到的空格的方法

smartcoach 2012-10-11 02:13:39

serialPort1.Read(rxBytes, 0, rxByteLength);//存至数组

这样读后第一个是空格,每次转到string后显示一个3F,怎么在读的时候就设置不读取第一个空格呢
...全文
161 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
听可笑的承诺 2012-10-13
  • 打赏
  • 举报
回复
string.Trim()
leafmao 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
可是我用别的软件接受同一帧就没有前面的3F这一项。。。这是怎么回事呢?

引用 7 楼 的回复:
没搞明白你到底想干嘛,你要是想去掉空格,就用1楼说的办法好了
你要是想读取的时候不读第一个字节,就用serialPort1.Read(rxBytes,1,rxByteLength)
串口是发什么接收什么,没干扰的话不大可能会多出东西来吧
[/Quote]

会不会是你发送的内容不在ASCII码表里,但是你又用的ASCII编码发送,导致将超出127的ASCII值编码为‘?’字符
  • 打赏
  • 举报
回复
转成字符串后,利用public string Replace(
string oldValue,
string newValue
)
方法,替换一下,再读取。
Chasernet 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

rxByteLength = serialPort1.BytesToRead;//获得长度
if (rxByteLength > 0)
{
rxBytes = new byte[rxByteLength];
serialPort1.Read(r……
[/Quote]
rxByteLength 这里又空格吧?
rxByteLength = serialPort1.BytesToRead;//获得长度 这里获取到的是字符串吗?
leafmao 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
怎么会无形中多了一个?,水嫩告诉我啊!
[/Quote]

你发送端第一个字符是什么?是向串口写字节还是字符串?
smartcoach 2012-10-11
  • 打赏
  • 举报
回复
可是我用别的软件接受同一帧就没有前面的3F这一项。。。这是怎么回事呢?[Quote=引用 7 楼 的回复:]
没搞明白你到底想干嘛,你要是想去掉空格,就用1楼说的办法好了
你要是想读取的时候不读第一个字节,就用serialPort1.Read(rxBytes,1,rxByteLength)
串口是发什么接收什么,没干扰的话不大可能会多出东西来吧
[/Quote]
smartcoach 2012-10-11
  • 打赏
  • 举报
回复
怎么会无形中多了一个?,水嫩告诉我啊!
leafmao 2012-10-11
  • 打赏
  • 举报
回复
没搞明白你到底想干嘛,你要是想去掉空格,就用1楼说的办法好了
你要是想读取的时候不读第一个字节,就用serialPort1.Read(rxBytes,1,rxByteLength)
串口是发什么接收什么,没干扰的话不大可能会多出东西来吧
smartcoach 2012-10-11
  • 打赏
  • 举报
回复
那要怎么去掉啊,诡异的多了一个?[Quote=引用 4 楼 的回复:]
楼主。。。。3F在ASCII里对应的是“?”,不是空格哎。。。
你第一个字节对应的字符是“?”,不是空格
[/Quote]
leafmao 2012-10-11
  • 打赏
  • 举报
回复
string.Trim()只能对字符串进行操作,你读的时候,是写到数组里,必须要先把数组转换成string,才可以用Trim()
leafmao 2012-10-11
  • 打赏
  • 举报
回复
楼主。。。。3F在ASCII里对应的是“?”,不是空格哎。。。
你第一个字节对应的字符是“?”,不是空格
smartcoach 2012-10-11
  • 打赏
  • 举报
回复
rxByteLength = serialPort1.BytesToRead;//获得长度
if (rxByteLength > 0)
{
rxBytes = new byte[rxByteLength];
serialPort1.Read(rxBytes, 0, rxByteLength);//存至数组
rxNumber += rxByteLength;//rx计数器加1
textBoxRx.Text = "RX:" + rxNumber.ToString();//显数计数
if (button停止显示.Text == "停止显示")
{
if (checkBox16进制显示.Checked)
{
for (int i = 0; i < rxByteLength; i++)
{这要在那个地方加Trim?我想在read的时候就加上,可是怎么加啊?[Quote=引用 1 楼 的回复:]
string.Trim()消除字符串前后的空格
[/Quote]
leafmao 2012-10-11
  • 打赏
  • 举报
回复
如果说每次第一个都是空格的话,那干脆不要读第一个好啦
serialPort1.Read(rxBytes,1,rxByteLength),从第2个字节开始读取,这样就不读空格了
Chasernet 2012-10-11
  • 打赏
  • 举报
回复
string.Trim()消除字符串前后的空格

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧