基于“|”拆分字符串分隔符&将值设置为不同的数组

时间:2014-02-04 08:56:14

标签: arrays vb.net

所以我在VB.Net项目中使用以下代码作为配置文件:

[User 1]
1|Test Button|C:\temp\test.csv|This Button is a test button
2|Test Button 2|C:\temp\test.csv|This Button is another test button

[User 2]
... etc

我想要做的是让第一部分转到名为butNum()的数组,第二部分转到名为butVal()的数组,第三部分转到butLink,第四部分转到butDes()。我到目前为止的代码如下:

    While Not reader.EndOfStream
        line = reader.ReadLine()
        If line.StartsWith("[") Then
            Dim Firstpart As String = Nothing
            Firstpart = line.Replace("[", "")
            Firstpart = Firstpart.Replace("]", "")
            If Firstpart = login.Login1.Text Then 'this checks the user has logged in as "User 1"
                While reader.ReadLine() <> ""
                    ReDim Preserve butNum(0 To lines)
                    ReDim Preserve butVal(0 To lines)
                    ReDim Preserve butLink(0 To lines)
                    ReDim Preserve butDes(0 To lines)
                    butNum(lines) = 'part 1 delimited
                    butVal(lines) = 'part 2 delimited
                    butLink(lines) = 'part 3 delimited
                    butDes(lines) = 'part 4 delimited
                    line = reader.ReadLine()
                    lines = lines + 1
                End While
            End If
            Application.DoEvents()
        Else
            Application.DoEvents()
        End If
    End While

稍微说,我的配置文件字符串值是否需要在“”(即1|"Test Button"|"C:\temp\test.csv"...)?我会假设没有,但它让我嘻嘻哈哈:P

1 个答案:

答案 0 :(得分:1)

请看第二行使用拆分字符串函数。

同样正如Christian提到的那样,你是否可以改变格式以便所有信息都在一行中User1 | 1 | Test Button | ......会更好,因为你可以使用split函数并在一个中获取所有细节去。

使用拆分

的示例
Dim secondlinestring As String = "1|Test Button|C:\temp\test.csv|This Button is a test button"
Dim strarr() As String
strarr = secondlinestring.Split("|"c)
For Each s As String In strarr
    MessageBox.Show(s)
Next

strarr是你对secondlinestring的每个分割的数组,所以strarr(0)=“1”strarr(1)=“Test Button”等。

正如您所看到的,将一行中的所有细节分隔为|可以节省你必须编写代码以允许第一和第二行差异。