我想在vb 6.0程序中读取.txt文件中的特定行。我的兴趣在于特定文本出现的特定行。我正在尝试应用我从另一个项目获得的代码。
Dim strLine As String
Open "E:\Projects\VB\Ubunifu\MyList.txt" For Input As #1
Line Input #1, strLine ' read one line at a time vs entire file
lblCurrent.Caption = strLine
Line Input #1, strLine
lblO.Caption = strLine
Close #1
然而,这似乎并没有起作用,它说“输入文件末尾”
答案 0 :(得分:0)
首先,如果您搜索过您的错误,您就会找到原因https://msdn.microsoft.com/en-us/library/aa232640(v=vs.60).aspx。
其次,您需要做一些事情以确保文件中有任何内容可供阅读。 https://msdn.microsoft.com/en-us/library/aa262732(v=vs.60).aspx
最后,使用循环从文件中读取行。您似乎希望第一行显示在一个标签中,第二行显示在另一个标签中。下面的代码从文件中一次读取一行,确定它是读取奇数行号(第一行)还是行号(第二行)并在标签中显示该行。在读取每一行之后,它会查找“某个文本”,无论它是什么,如果找到它会退出循环并关闭文件。
Open "E:\Projects\VB\Ubunifu\MyList.txt" For Input As #1
Do While EOF(1) = False
Line Input #1, strLine ' read one line at a time vs entire file
lngLineNum = lngLineNum + 1 'Am I reading an odd or even line number
If lngLineNum Mod 2 <> 0 Then
lblCurrent.Caption = strLine
Else
lblO.Caption = strLine
End If
If InStr(1, strLine, "a cetain text", vbTextCompare) > 0 Then
Exit Do
End If
Loop
Close #1
请注意,在调用InStr之前,我没有检查strLine是否包含任何内容。如果它为空,则InStr函数将导致错误。你应该添加一些防御性编码。至少是一个错误处理程序。
答案 1 :(得分:-1)
你可以试试这个:
svn:mergeinfo
我刚添加了一个从字符串中读取行的函数,您可以根据需要继续使用LOF函数,也可以使用原始代码中的所有概念。