使用VB6
当我读取空白文本文件时,将错误显示为输入过去文件末尾
代码。
Dim fso As FileSystemObject
Dim TS As TextStream
Dim TempS As String
Dim Final As String
Set fso = New FileSystemObject
Set TS = fso.OpenTextFile(txtSourceDatabaseFile & "\" & FileName, ForReading)
Final = TS.ReadAll
Do Until TS.AtEndOfStream
TempS = TS.ReadLine
Final = Final & TempS & vbCrLf
Loop
TS.Close
如何检查文本文件是否为空?如果为空则无需读取内容,否则应阅读内容。
需要VB6代码帮助
答案 0 :(得分:8)
你这样做:
Final = TS.ReadAll
Do Until TS.AtEndOfStream
TempS = TS.ReadLine
Final = Final & TempS & vbCrLf
Loop
您应该在调用ReadAll之前检查AtEndOfStream,例如:
If TS.AtEndOfStream Then
Final = ""
Else
Final = TS.ReadAll
Do Until TS.AtEndOfStream
TempS = TS.ReadLine
Final = Final & TempS & vbCrLf
Loop
End If
但是请注意,那里有一个逻辑错误:ReadAll会将整个文件读入内存。因此,随后调用ReadLine将不会返回任何内容。使用ReadAll并使用字符串操作解析输入,或者仅调用ReadLine。不要同时使用它们。
答案 1 :(得分:2)
如果您只想在7月份将文本文件读成字符串,请参阅Stefan answered that on one of your questions。答案仍然是一样的。
strFilename = "C:\1.txt"
iFile = FreeFile
Open strFilename For Input As #iFile
strTheData = StrConv(InputB(LOF(iFile), iFile), vbUnicode)
Close #iFile
如果文件为空(零长度),则strTheData将包含空字符串“”。或者,您可以使用FileLen检查文件的长度。
If FileLen("C:\1.txt") = 0 Then MsgBox "Empty file"
我建议避免使用FileSystemObject:用户的计算机上有时会丢失它 - 可能是因为过度热心的IT部门害怕病毒?编辑:事实上,我刚刚从同事那里听说过上周用户问题,结果证明是FileSystemObject问题。
答案 2 :(得分:0)
如果您只想检查文件大小,可以直接询问.Size
属性,而无需打开该文件:
set folder = fso.GetFolder(path)
for each file in folder.Files
Response.Write file.Name & ": " & file.Size & "<br>"
Next