循环 - 在某个字符串之后读取文本直到某个字符串

时间:2014-04-28 19:51:22

标签: vb.net loops streamreader

start=AKS-RHzlSXSftLGYdBNk.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1&

对于单词' start'的每个实例我需要能够在第一次完整停止后获取文本,直到&符号。例如。 ' eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1'

这将有多个实例。它们需要附加到列表框中。

最简单/最快捷的方法是什么? (使用可能的streamreader - 文本文件)

2 个答案:

答案 0 :(得分:1)

最简单,最快捷的方法是阅读每一行,并检查它是否为.StartsWith("start=")。如果是,请获取.IndexOf(".").IndexOf("&", <whereever the first indexOf was>)。获取包含这两个值的.SubString。我确定你可以自己编写代码;)

答案 1 :(得分:0)

我通过单击按钮测试了此功能,在文本框的每一行输出文本。我相信你可以根据你的代码进行调整。

  Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    txtResults.Text = ""
    Dim ParseString As String
    ParseString = "start=123341.23124&kjdshfkjsdaksdstart=1231.2321312&kadhskjashdkjastart=1231.23126789898&skjdfhkjsd"
    Dim Delimiters() As String = New String() {"start="}
    Dim Words() As String
    Words = ParseString.Split(Delimiters, CompareMethod.Text)
    For Each Part In Words
        Dim Middle As String
        Middle = Part.Split(".").Skip(1).Take(1).FirstOrDefault()
        Dim Good As String
        Good = Middle.Split("&").FirstOrDefault()
        txtResults.Text += Good + vbNewLine
    Next
End Sub

输出

23124
2321312
23126789898

在一个字符串中添加31104行并运行,在我的笔记本电脑上运行大约需要11秒。您的应用可能太慢了吗?