我正在使用visual basic 2010.I有以下格式的数据字符串。我想将逗号分隔值拆分并放入Individual文本框。对于最后一个 Temp_read:348,HV_Read:647,SPD:0,DIS:0 “。我想单独拆分值并放入文本框。
有人可以建议我怎么做。有没有示例代码。
Public Class Form1
Dim selectedItem1 As String
Dim Data As String
Private Sub SMCB1_clientIP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_clientIP.TextChanged
End Sub
Private Sub SMCB1_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_Connect.Click
Dispay_Show.Text = SMCB1_clientIP.Text
Dispay_Show.Text = SMCB1_clientIP.Text & vbNewLine & SMCB1_Port.Text & vbNewLine
Data = "SMCB3,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Temp_read:348,HV_Read:647,SPD:0,DIS:0"
Dispay_Show.Text = SMCB1_clientIP.Text & vbNewLine & SMCB1_Port.Text & vbNewLine & Data
Data.Split()
End Sub
Private Sub SMCB1_Disconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_Disconnect.Click
End Sub
End Class
数据=“SMCB3,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,Temp_read:348,HV_Read:647,SPD:0,DIS:0"
答案 0 :(得分:0)
我编写的代码如下。有28个文本框。值应记录到每个文本框中。使用以下代码,我可以记录多达28个值。 但从24岁起,这个参数包含了 的 Temp_read:348,HV_Read:647,SPD:0,DIS:0" 强> 需要分隔字符串“:”并将读数放到特定的文本框中。
Option Explicit On
Public Class Form1
Dim selectedItem1 As String
Dim Data As String
Dim WrdArray() As String
Dim line As String
Private Sub SMCB1_clientIP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_clientIP.TextChanged
End Sub
Private Sub SMCB1_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_Connect.Click
' Dispay_Show.Text = SMCB1_clientIP.Text
'Dispay_Show.Text = SMCB1_clientIP.Text & vbNewLine & SMCB1_Port.Text & vbNewLine
Data = "SMCB3,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Temp_read:348,HV_Read:647,SPD:0,DIS:0"
' Dispay_Show.Text = SMCB1_clientIP.Text & vbNewLine & SMCB1_Port.Text & vbNewLine & Data
Dispay_Show.Text = Data
Dim strArray() As String
Dim intCount As Integer
Dim Tempr_read As String
Dim voltage As String
Dim SPD As String
Dim Dis_value As String
Data = "SMCB3,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Temp_read:348,HV_Read:647,SPD:0,DIS:0"
strArray = Split(Data, ",")
SMCB1_Name.Text = strArray(0)
SMCB1_DeviceId.Text = strArray(1)
SMCB1_String1.Text = strArray(2)
SMCB1_String2.Text = strArray(3)
SMCB1_String3.Text = strArray(4)
SMCB1_String4.Text = strArray(5)
SMCB1_String5.Text = strArray(6)
SMCB1_String6.Text = strArray(7)
SMCB1_String7.Text = strArray(8)
SMCB1_String8.Text = strArray(9)
SMCB1_String9.Text = strArray(10)
SMCB1_String10.Text = strArray(11)
SMCB1_String11.Text = strArray(12)
SMCB1_String12.Text = strArray(13)
SMCB1_String13.Text = strArray(14)
SMCB1_String14.Text = strArray(15)
SMCB1_String15.Text = strArray(16)
SMCB1_String16.Text = strArray(17)
SMCB1_String17.Text = strArray(18)
SMCB1_String18.Text = strArray(19)
SMCB1_String19.Text = strArray(20)
SMCB1_String20.Text = strArray(21)
SMCB1_String21.Text = strArray(22)
SMCB1_String22.Text = strArray(23)
SMCB1_String23.Text = strArray(24)
SMCB1_String24.Text = strArray(25)
' Tempr_read = Split(Data(strArray(26),":")
SMCB1_Temp.Text = strArray(26)
SMCB1_Hvread.Text = strArray(27)
SMCB1_SPD.Text = strArray(28)
SMCB1_DIS.Text = strArray(29)
For intCount = LBound(strArray) To UBound(strArray)
Debug.Print(Trim(strArray(intCount)))
Next
End Sub
Private Sub SMCB1_Disconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SMCB1_Disconnect.Click
End Sub
End Class
答案 1 :(得分:0)
我建议使用2个InStrRev函数实例 - 一个用于冒号,另一个用于逗号,同时在字符串中向后循环并构建数组。
通过这种方式,您将能够捕获冒号右侧(和逗号之前)的数据,但忽略逗号和冒号之间的标签(如果这实际上是您打算做的)。
如果你想要一个有用的例子,请打我。
此致