【发布时间】:2015-04-14 01:36:58
【问题描述】:
我正在尝试读取一个我用单独的程序成功编写的 .txt 文件,但我一直让程序停止运行(也就是根本没有输入/输出,就像它有一个无限循环之类的东西)。我收到消息“A”,但没有其他消息。
我在类似这样的网站上看到过很多帖子,其中列出了从文件中读取的各种创造性方法,但我发现的每个指南都希望我更改 Msgbox A 和 Msgbox D 之间的代码。没有一个他们改变了结果,所以我开始认为问题实际上在于我如何指出文件的位置。有一个代码(与Dim objReader As New System.IO.TextReader(FileLoc) 有关),但是当我要求读取文件时,我得到了文件的地址。这就是为什么我怀疑我指向 .txt 错误。有一个问题...
如果我做错了,我完全不知道该怎么做。
我在最后附上了代码的 sn-p(每行无关的数据都从中提取出来)。
如果重要的话,实际程序的位置在“G01-Cartography”文件夹中。
Private Sub GameMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
LoadMap("Map_Cygnus.txt")
End Sub
Private Sub LoadMap(FileLoc As String)
FileLoc = "C:\Users\Adam\Documents\Visual Studio 2013\Projects\G01-Cartography\Maps\" + FileLoc
MsgBox("A")
Using File As New StreamReader(FileLoc)
MsgBox("B")
Dim WholeMap = File.ReadLine()
MsgBox("C")
End Using
MsgBox("D")
End Sub
【问题讨论】:
-
使用 MsgBox() 是一种非常危险的代码调试方式。它会导致重新进入,例如,您的 Shown 事件将在 Load 完成之前触发。您需要学习在调试器中使用断点。以及调试器的调用堆栈窗口,以找出您的代码挂起的原因。花点时间学习基本技能。
-
好吧,在那种情况下,什么是“重新进入”,什么是“调用堆栈”,加载部分的重点不就是加载东西吗?如果您能找到一些解释这一点的链接,我将不胜感激。
-
这是一件非常糟糕的事情。集中精力,先学习如何使用调试器。
-
@Rettro 它挂在哪里?显示了哪些消息框?
-
@mikek3332002 我得到“A”,但不是其他人。我在表述问题时不小心删掉了该信息,并重新添加到原始帖子中。
标签: vb.net streamreader