Vb.net 显示文本文件中除最后一行以外的所有行
我创建了一个名为Go的2人游戏,这样游戏的统计数据就会记录在一个文本文件中。如果相同的两名玩家相互玩了不止一次,他们的游戏将记录在下一行的同一文本文件中 我已经完成了所有这些,但现在我希望以前的比赛能显示在屏幕上,这样球员们就可以看到以前比赛的分数。我不希望最后一行显示出来,因为这是刚刚结束的比赛的分数。以下是我目前的代码:Vb.net 显示文本文件中除最后一行以外的所有行,vb.net,file,eof,Vb.net,File,Eof,我创建了一个名为Go的2人游戏,这样游戏的统计数据就会记录在一个文本文件中。如果相同的两名玩家相互玩了不止一次,他们的游戏将记录在下一行的同一文本文件中 我已经完成了所有这些,但现在我希望以前的比赛能显示在屏幕上,这样球员们就可以看到以前比赛的分数。我不希望最后一行显示出来,因为这是刚刚结束的比赛的分数。以下是我目前的代码: Dim file As System.IO.StreamWriter 'Imports the data from previous forms to form
Dim file As System.IO.StreamWriter
'Imports the data from previous forms to form 3
handikomi = Form1.handi_komi
prisonerB = Form2.prisonerB
prisonerW = Form2.prisonerW
bpass = Form2.bpass
wpass = Form2.wpass
bstones = Form2.bstones
wstones = Form2.wstones
btotalscore = prisonerB + handikomi(0, 2)
wtotalscore = prisonerW + handikomi(1, 2)
If btotalscore > wtotalscore Then
winnerlbl.Text = (handikomi(0, 0) & " IS THE WINNER!")
ElseIf wtotalscore > btotalscore Then
winnerlbl.Text = (handikomi(1, 0) & " IS THE WINNER!")
End If
file = My.Computer.FileSystem.OpenTextFileWriter("F:\My Go project flood fill2\Text files\" & handikomi(0, 0) & " VS " & handikomi(1, 0) & ".txt", True)
'Displays statistics from current match
file.WriteLine("BLACK" & "," & "WHITE" & "," & "Total Score" & "," & btotalscore & "," & wtotalscore & "," & "Prisoners" & "," & prisonerB & "," & prisonerW & "," & "Passes" & "," & bpass & "," & wpass & "," & "Stones" & "," & bstones & "," & wstones)
file.Close()
breakdwnlbl.Text = " BLACK WHITE"
breakdwnlbl.Text = (breakdwnlbl.Text & vbNewLine & "Total Score" & " " & btotalscore & " " & wtotalscore)
breakdwnlbl.Text = (breakdwnlbl.Text & vbNewLine & "Prisoners" & " " & prisonerB & " " & prisonerW)
breakdwnlbl.Text = (breakdwnlbl.Text & vbNewLine & "Passes" & " " & bpass & " " & wpass)
breakdwnlbl.Text = (breakdwnlbl.Text & vbNewLine & "Stones" & " " & bstones & " " & wstones)
Dim data As String 'to hold value of file line
Dim filename As String 'declare file
filename = "F:\My Go project flood fill2\Text files\" & handikomi(0, 0) & " VS " & handikomi(1, 0) & ".txt" 'path to file on system
FileOpen(1, filename, OpenMode.Input) 'open file for reading
'try amend
Do While Not EOF(1)
data = LineInput(1)
MsgBox(data)
Loop
我认为我不应该在这个案例中使用EOF,但我不知道还能用什么,因为我还是一个初学者。谢谢你的帮助 阅读所有行而跳过最后一行不是更容易吗:
Dim allLines() As String = File.ReadAllLines(filename)
Dim allButLast = allLines.Take(allLines.Length - 1)
变量allButLast
是一个IEnumerable(字符串)
包含文件中除最后一行以外的所有行
更新:
下面的示例显示了消息框中的每一行:
For Each line As String In allButLast
MessageBox.Show(line)
Next
阅读所有行,跳过最后一行,不是更容易吗
Dim allLines() As String = File.ReadAllLines(filename)
Dim allButLast = allLines.Take(allLines.Length - 1)
变量allButLast
是一个IEnumerable(字符串)
包含文件中除最后一行以外的所有行
更新:
下面的示例显示了消息框中的每一行:
For Each line As String In allButLast
MessageBox.Show(line)
Next
你有没有尝试创建一个包含过去游戏列表的额外文件?@MarcoSadowski你说的额外文件是什么意思?我只创建了一个文件,其中包含相同2名玩家之间使用相同用户名的所有以前的游戏。您是否尝试创建一个包含过去游戏列表的额外文件?@MarcoSadowski您所说的额外文件是什么意思?我只创建了一个文件,其中包含了使用相同用户名的相同2名玩家之间的所有以前的游戏。在声明第一个变量时,我得到了一个生成错误“file.ReadAllLines”。这是说它不是StreamWriter的成员仔细看代码,你应该键入File
而不是File
。对于File
我指的是System.IO
名称空间中的类。我确实用大写字母f编写了它,但它会自动用小写字母f替换它。。。编辑:忽略我刚刚写的内容,我意识到我创建了一个名为“file”的变量,这会弄乱它。谢谢你的帮助@user6297009:如果此答案解决了您的问题,请记住按帖子左侧的勾号/复选标记将其标记为已接受。有关更多信息,请参阅:在声明第一个变量时,我遇到“file.ReadAllLines”生成错误。这是说它不是StreamWriter的成员仔细看代码,你应该键入File
而不是File
。对于File
我指的是System.IO
名称空间中的类。我确实用大写字母f编写了它,但它会自动用小写字母f替换它。。。编辑:忽略我刚刚写的内容,我意识到我创建了一个名为“file”的变量,这会弄乱它。谢谢你的帮助@user6297009:如果此答案解决了您的问题,请记住按帖子左侧的勾号/复选标记将其标记为已接受。有关更多信息,请参阅: