You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Basic 2013中如何拆分串口接收的文本框数据

解决VB 2013串口数据截取问题

嘿,我来帮你搞定这个串口数据拆分的需求!你现在拿到的是类似"180,10."的字符串,要把两个数值分别存入变量,其实用VB的字符串分割方法就能轻松搞定,我给你一步步说:

核心思路

我们可以直接把逗号(,)和句号(.)都作为分割符,把字符串拆分成独立的数据项,再转成你需要的数值类型就行。同时还要加个判断,避免串口偶尔传来格式错误的数据导致程序报错。

修改后的代码示例

结合你现有的代码,这样调整就可以实现需求:

Dim receivedData As String = ReceiveSerialData()
RichTextBox1.Text &= receivedData

' 开始处理数据截取
' 用逗号和句号作为分隔符,同时移除空的分割结果
Dim dataParts() As String = receivedData.Split(New Char() {","c, "."c}, StringSplitOptions.RemoveEmptyEntries)

' 检查是否成功得到两个有效数据项
If dataParts.Length = 2 Then
    ' 把字符串转成整数(如果是小数就用Double.Parse)
    Dim firstValue As Integer = Integer.Parse(dataParts(0))
    Dim secondValue As Integer = Integer.Parse(dataParts(1))
    
    ' 这里可以添加你需要的后续操作,比如打印到调试窗口
    Debug.WriteLine($"第一个数值:{firstValue},第二个数值:{secondValue}")
Else
    ' 处理格式异常的情况,比如输出提示
    Debug.WriteLine("警告:接收到的串口数据格式不符合预期,请检查设备输出")
End If

代码说明

  • Split方法:传入逗号和句号两个字符作为分割标记,StringSplitOptions.RemoveEmptyEntries参数会自动忽略因为末尾句号产生的空字符串,确保我们得到的是两个干净的数据项。
  • 类型转换:用Integer.Parse把字符串转成整数,如果你的数据可能包含小数(比如180.5,10.2.),就换成Double.Parse或者Decimal.Parse。
  • 异常防护:添加If dataParts.Length = 2的判断,是因为串口通信偶尔会收到不完整的数据包(比如只传了一半),这个判断能避免程序因为转换失败崩溃。

如果你的数据里可能有多余的空格,还可以在分割前先调用receivedData.Trim()去掉首尾空格,让处理更稳妥。

内容的提问来源于stack exchange,提问作者krosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:04:07