在文本文件中确定特定代码片段的行

时间:2017-03-13 18:46:30

标签: vb.net streamreader streamwriter streamwriter.write

我目前正在用Visual Basic .Net编写一个程序。

在程序的一个特定部分中,我试图从文本文件中的特定行读取,更改该文件中的一个数据值(数据值由“,”分隔)并覆盖 相同文件中的相同行。

目前,我编写的代码可以完成所有这些但是要使一部分工作我需要能够确定要保留数据的行,然后添加到变量中以便此行可以以后用来写。 这是我正在谈论的代码:

Private Sub AddC1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddC1.Click
    Dim AddC1 As String = 0
    Dim checkfile As New System.IO.StreamReader("..\..\checkfile.txt")
    Dim check As String = checkfile.ReadToEnd
    Dim objreader As New System.IO.StreamReader("..\..\usernamepassword.txt")
    Dim contents As String = objreader.ReadLine
    For i As Integer = 1 To check
        contents = objreader.ReadLine
        Dim data As New List(Of String)(contents.Split(","))
        If forname.Text = data(2) Then
            If surname.Text = data(3) Then
                AddC1 = data(8) + 1
                Exit For
            End If
        End If
    Next i
    Dim Lines() As String = System.IO.File.ReadAllLines("..\..\usernamepassword.txt")
    Lines(1) = ""
    System.IO.File.WriteAllLines("..\..\username.txt", Lines)
End Sub

请注意,此代码尚未完成。我现在认为这个解释没有完全合理,但是我尽力解释我的能力。

提前谢谢,Alfie。

1 个答案:

答案 0 :(得分:1)

Dim check = File.ReadAllLines("..\..\checkfile.txt").Length

应该是

For i As Integer = 1 To check

将为您提供文件中的行数。否则,

{{1}}

会给你一个错误。无法从整数变为字符串。您可以声明另一个变量并将其设置为等于i - 1(因为你的for循环从1而不是0开始)在你的内部if循环中,它将为你提供索引的值以供以后使用。