VB中读取TXT文件时怎么判别空行?
VB中读取TXT文件时怎么判别空行?如果要读取TXT文件存在空行,读取的时候想跳过空行接着读取下面的数据,改怎么办?二楼的程序运行的时候第一行提示编译错误:缺少语句结束。...
VB中读取TXT文件时怎么判别空行?如果要读取TXT文件存在空行,读取的时候想跳过空行接着读取下面的数据,改怎么办?
二楼的程序运行的时候第一行提示编译错误:缺少语句结束。烦请指教!小弟谢过 展开
二楼的程序运行的时候第一行提示编译错误:缺少语句结束。烦请指教!小弟谢过 展开
推荐于2016-09-11
展开全部
整体思路如下:
lineinput 读出到字符然后判断是否为空。
可以用Len(*)=0判断,也可以用Trim(*)=""判断,或者Len(Trim(*))=0也可。
参考代码如下:
Public Function RedTextFile(Filename As String) As String
Dim FileID As Long
Dim InputStr As String
Dim LineStr As String
DIM I AS LONG
On Error Resume Next
InputStr = "": LineStr = ""
FileID = FreeFile()
Open Filename For Input As #FileID
Do While Not EOF(FileID) ' 循环至文件尾。
I=I+1
LineStr = ""
Line Input #FileID, LineStr
IF LEN(TRIM$(LINESTR))=0 THEN
DEBUG.PRINT I & "是空行"
END IF
'InputStr = InputStr & LineStr
Loop
Close #FileID
RedTextFile = IIf(Err.Number = 0, InputStr, "")
Err.Clear
End Function
lineinput 读出到字符然后判断是否为空。
可以用Len(*)=0判断,也可以用Trim(*)=""判断,或者Len(Trim(*))=0也可。
参考代码如下:
Public Function RedTextFile(Filename As String) As String
Dim FileID As Long
Dim InputStr As String
Dim LineStr As String
DIM I AS LONG
On Error Resume Next
InputStr = "": LineStr = ""
FileID = FreeFile()
Open Filename For Input As #FileID
Do While Not EOF(FileID) ' 循环至文件尾。
I=I+1
LineStr = ""
Line Input #FileID, LineStr
IF LEN(TRIM$(LINESTR))=0 THEN
DEBUG.PRINT I & "是空行"
END IF
'InputStr = InputStr & LineStr
Loop
Close #FileID
RedTextFile = IIf(Err.Number = 0, InputStr, "")
Err.Clear
End Function
展开全部
2楼的,你的程序读到空行时就停住了,如果有超过2条空行的你就没法处理,只有删除空行。1楼的可以全部处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上述方法太过时。在新版本中,用StreamReader:
Dim l As String
Using s As New IO.StreamReader(文件路径)
l = s.ReadLine()
(这里l就是一行的内容)
如果想跳过,就继续ReadLine
Do
l = s.ReadLine()
Loop While l = ""
(三楼是什么意思,读到空行就停了?那我就写个全的:
Using s As New IO.StreamReader(...)
Do
l = s.ReadLine()
If l = "" Then
Do
l = s.ReadLine()
If s.EndOfStream Then Exit Using
Loop While l = ""
End If
(输出l)
Loop Until s.EndOfStream
End Using)
回楼主:要是Using那句不能执行的话,试试Using s As Streamreader = New StreamReader(...),不过我的机器就可以运行啊,你的是不是VVB6.0,VB2005以上版本才支持这个StreamReader)
Dim l As String
Using s As New IO.StreamReader(文件路径)
l = s.ReadLine()
(这里l就是一行的内容)
如果想跳过,就继续ReadLine
Do
l = s.ReadLine()
Loop While l = ""
(三楼是什么意思,读到空行就停了?那我就写个全的:
Using s As New IO.StreamReader(...)
Do
l = s.ReadLine()
If l = "" Then
Do
l = s.ReadLine()
If s.EndOfStream Then Exit Using
Loop While l = ""
End If
(输出l)
Loop Until s.EndOfStream
End Using)
回楼主:要是Using那句不能执行的话,试试Using s As Streamreader = New StreamReader(...),不过我的机器就可以运行啊,你的是不是VVB6.0,VB2005以上版本才支持这个StreamReader)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim TextLine
Open app.path & "\aa.txt" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, TextLine ' 读入一行数据并将其赋予某变量,这里是赋给了TEXTLINE
if textline="" then
这里写如果为空的代码
else
这里写如果不为空的代码,不写就什么也不做,继续去读入下一行文本
end if
Loop
Close #1 ' 关闭文件。
Open app.path & "\aa.txt" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, TextLine ' 读入一行数据并将其赋予某变量,这里是赋给了TEXTLINE
if textline="" then
这里写如果为空的代码
else
这里写如果不为空的代码,不写就什么也不做,继续去读入下一行文本
end if
Loop
Close #1 ' 关闭文件。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询