我目前正在用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。
答案 0 :(得分:1)
Dim check = File.ReadAllLines("..\..\checkfile.txt").Length
应该是
For i As Integer = 1 To check
将为您提供文件中的行数。否则,
{{1}}
会给你一个错误。无法从整数变为字符串。您可以声明另一个变量并将其设置为等于i - 1(因为你的for循环从1而不是0开始)在你的内部if循环中,它将为你提供索引的值以供以后使用。