vb.net - 从某个字符串中搜索文本文件,从该点读取

时间:2010-02-01 07:33:16

标签: vb.net search text streamreader

这可能并不难做到。 但我有两个文本文件。第一个获得了某些关键字的列表。 如果将这些关键字输入组合框中,则每一个。

现在,当我从这个组合框中选择一个项目时,我想在其他文本文件中搜索相同的关键字,并从该点读取下一个关键字。然后将每行送入列表框。希望我能让自己明白。

也许我应该为此目的使用INI文件,对我来说并不重要。

文本文件具有这种结构; Textfile1:

London
Oslo
New York
Hamburg
Amsterdam

第二个文本文件具有这种结构; Textfile2:

'London'
Apples
Oranges
Pears

'Oslo'
Pasta
Salami
Monkeyballs

'New York'
Dada
Duda
Dadadish

Etc等。

这可能吗?我想这样做的原因是创建一个完全动态的系统。一个完全依赖于存储在这些文本文件中的任何信息的人。我稍后会从这些结果中构建非常复杂的字符串。

到目前为止,我已经阅读了第一个文件,并将每一行添加到组合框中:

Dim oReadMenuFunction as System.IO.StreamReader
oReadMenuFunction = IO.File.OpenText("textfile1.txt")

Do While oReadMenuFunction.Peek <> -1
    Dim LineIn as String = oReadMenuFunction.ReadLine()
    Combobox.Items.Add(LineIn)
Loop

1 个答案:

答案 0 :(得分:1)

这是一个可用于解析第二个文件的示例函数。它将关键字作为参数并返回关联的项目:

Function ReadData(ByRef keyword As String) As IEnumerable(Of String)
    Dim result = New List(Of String)
    Using reader = New StreamReader("file2.txt")
        Dim line As String = reader.ReadLine()
        Dim take = False
        Do While line IsNot Nothing
            If line.StartsWith("'") Then
                take = False
            End If
            If String.Equals("'" + keyword + "'", line) Then
                take = True
            End If
            If take And Not String.IsNullOrEmpty(line) And Not line.StartsWith("'") Then
                result.Add(line)
            End If
            line = reader.ReadLine()
        Loop
    End Using
    Return result
End Function

你这样使用它:

Dim items = ReadData("London")