我正在为一个项目开发一款RPG游戏,但我被卡住了。
基本上,此代码在文本文件中搜索名称(结构:作为名称的赔率和作为级别的均衡)。然后它需要输出下一行,即它们所在的级别。我有计数器(变量“count”)输出正确的文本行,其中写入了该级别,但我不能使用该计数来读取该行(使用“FileSystem.LineInput(count)”)。
这是我的完整代码:
Sub LoadGame()
Dim filename, filepath, searchitem, question, read As String
Dim found As Boolean
Dim count As Integer = 1
filename = "save.txt"
filepath = CurDir() & "\" & filename
searchitem = name
FileOpen(1, filename, OpenMode.Input)
Do While Not EOF(1)
read = LineInput(1)
If read = searchitem Then
found = True
Exit Do
Else
found = False
End If
count = count + 1
Loop
If found = True Then
If count >= 3 Then
count = count + 1
End If
question = FileSystem.LineInput(count) ' This bit is broken
Console.WriteLine("Found save game... Loading: " & question)
Console.ReadLine()
Console.BackgroundColor = ConsoleColor.Black
Console.ForegroundColor = ConsoleColor.Red
Console.Clear()
Race(question)
Else
Console.WriteLine("No save game...")
Console.ReadLine()
End If
FileClose(1)
End Sub
我不确定出了什么问题但是我们非常感谢任何帮助(使用VB 2010)
答案 0 :(得分:0)
LineInput读取指定文件的下一行(参数FileNumber
)。
您的文件有FileNumber
1,文件指针指向所需的行。因此,它应该足够了
question = FileSystem.LineInput(1)
在我看来,你应该避免在.Net中进行那种文件访问(每个FileNumber)。这只是VB6次的遗留物。在.Net中,您可以使用易于使用的类,例如StreamReader。但是如果你想以老式的方式去做,至少使用FreeFile
方法来定义文件号。