在文件中查找包含特定字符串的行

时间:2015-01-16 22:35:47

标签: wpf vb.net file file-io streamreader

尝试线性搜索文件以找到以用户名开头的行(以及","因为它确保它是整个用户名)在格式为"的文件中, ,,"对于每一行。

我不确定如何做到这一点,所以感谢任何帮助。

    Dim lineCorrect As String = ""
    Using reader As New System.IO.StreamReader("Pass.txt")
        While Not reader.EndOfStream
            If reader.ReadLine.StartsWith(tbUsernameLogIn.Text & ",") = True Then
                lineCorrect = reader.ReadLine
            Else
                reader.ReadLine()
            End If
        End While
    End Using
    If lineCorrect = "" Then
        Debug.WriteLine("Incorrect Login 1")
    Else
        'do something'
    End If

2 个答案:

答案 0 :(得分:3)

这是一种使用File.ReadLines方法

的简单方法
Dim lineCorrect As String = ""
Dim userLine = tbUsernameLogIn.Text & ","
for Each line in File.ReadLines("Pass.txt")
    If line.StartsWith(userLine) Then
        lineCorrect = line
        Exit For
    End If
Next
If lineCorrect = "" Then
    Debug.WriteLine("Incorrect Login 1")
Else
    'do something'
End If

这允许您枚举文件中的所有行,并在搜索到的行的第一次出现时退出for each循环。还要注意微观优化。保持字符串的构建以在循环外部进行检查(尽管编译器可能会自行优化)

答案 1 :(得分:2)

尝试这样的事情:

Dim lineCorrect As String
lineCorrect = File.ReadLines("Pass.txt") _
    .FirstOrDefault(Function(str) str.StartsWith(tbUsernameLogIn.Text & ","))