拆分字符串并将值放入文本框中

时间:2016-07-22 09:39:36

标签: vba csv textbox

我正在使用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

Image

  

数据=“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"

2 个答案:

答案 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函数实例 - 一个用于冒号,另一个用于逗号,同时在字符串中向后循环并构建数组。

通过这种方式,您将能够捕获冒号右侧(和逗号之前)的数据,但忽略逗号和冒号之间的标签(如果这实际上是您打算做的)。

如果你想要一个有用的例子,请打我。

此致