【发布时间】:2014-02-08 10:17:51
【问题描述】:
VB 应该读取每一行并仅显示相应的“ItemNo”,但是它所做的只是读取我的代码的最后一行并显示它,如果我输入一个项目编号,它也不会返回我的消息尚不存在。有什么方法可以纠正这个问题,以便它只选择具有相应“ItemNo”的行,并在找不到号码时返回我的消息。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles CheckNum.Click
Dim File As String = "K:\Access to Computing Folder\Monday\Nicholas Kakou\Assignments\Assignment 2\MicroNut Software Ltd\MicroNut Software Ltd\Data Files\StockFile.dat"
Dim TextLine As String = ""
If System.IO.File.Exists(File) = True Then
Dim objReader As New System.IO.StreamReader(File)
Do While objReader.Peek() <> -1
TextLine = objReader.ReadLine() & vbNewLine
Loop
MsgBox(TextLine)
Else
MsgBox("File Does Not Exist", MsgBoxStyle.OkOnly)
End If
End Sub
【问题讨论】:
-
好吧,我们不会做你的功课。但是我们可以说的是单步执行您的代码以查看发生了什么。我可以首先告诉您,您在读取的每一行上都会覆盖 TextLine 变量,因此读取的最后一行就是您将在消息框中得到的内容。 (使用 MessageBox.Show 而不是 MsgBox)
-
我不是要你做我的“功课”,我是问我哪里出错了。我的帖子中没有任何地方说为我做这个。
-
当然,但它是这样提出的。但是,我确实为您提供了一个很好的开端,说明您为什么只显示最后一行……我们希望确保您确实为自己的利益而学习……仅此而已。 :)
-
我将代码更改为您建议的方式,但它仍然会产生相同的错误。我应该在哪里删除 TextLine 变量?
-
哪个错误?它对我来说很好......我认为你没有完全按照我的建议做:) 你正在逐行阅读文件中的所有行。当它完成阅读时,您会显示一个 msgbox - 这将显示您阅读的最后一行。