Text 为什么读取/写入另一个文件的VB6文本文件的最后一行仅部分打印?
我正在使用VB6以编程方式创建几个文本文件夹,然后将它们连接到一个文件中 我使用Text 为什么读取/写入另一个文件的VB6文本文件的最后一行仅部分打印?,text,vb6,file,Text,Vb6,File,我正在使用VB6以编程方式创建几个文本文件夹,然后将它们连接到一个文件中 我使用 Print #lngFileHandle, Text 因此,即使在每个文件的最后一行文本之后,也应该有一个CR/LF 然后我将所有这些“子文件”一起附加到另一个以这种方式打开的文本文件中: Open strFileName For Append As #lngFileHandle 奇怪的是,我的最后一个结果文件看起来不错,只是最后一个附加文件的最后一行只是部分存在 在我阅读的文件中,最后几行是这样的:
Print #lngFileHandle, Text
因此,即使在每个文件的最后一行文本之后,也应该有一个CR/LF
然后我将所有这些“子文件”一起附加到另一个以这种方式打开的文本文件中:
Open strFileName For Append As #lngFileHandle
奇怪的是,我的最后一个结果文件看起来不错,只是最后一个附加文件的最后一行只是部分存在
在我阅读的文件中,最后几行是这样的:
`<Name>` Referral for Service Home Delivered Meals`</Name>`
`<Name>` Referral for Service Adult Day Care/Health`</Name>`
`<Name>` Referral for Service Congregate Meals`</Name>`
IsEOF功能如下所示:
Public Function IsEOF() As Boolean
If blnOpened Then
IsEOF = EOF(lngFileHandle)
Else
IsEOF = True
End If
End Function
如果我根本没有得到最后一行,但只得到其中的一部分,那对我来说就更有意义了?--我不明白
有人看到最后一行只会部分打印到最终文件的内容吗
TIA。请确保您正在关闭文件,因为清除任何待写入的数据可能需要关闭文件。VB6文件号不是文件句柄,因此不要这样称呼它们。它们是运行时文件描述符表中的索引,实际句柄、模式、缓冲区长度、缓冲区、端口等都存储在该表中
Close
语句不是同步的,而是一个“延迟关闭”语句,它可能没有刷新所有数据,并在您转身尝试再次读取文件时更新了文件的EOF指针。据我所知,这种行为是故意的,可能是出于性能原因
Reset
语句可用于强制关闭所有打开的文件,并且是同步的。这并不总是实用的,但在您的情况下可能会很好。很容易尝试:在重新打开任何文件以连接它们之前添加重置。谢谢--确保在打印到连接的文件后立即关闭我的文件似乎已经成功了!
With mobjNewEntriesLog
Do While Not .IsEOF
strOutput = .ReadLine
mobjMainLog.PrintLine strOutput
Loop
End With
Public Function IsEOF() As Boolean
If blnOpened Then
IsEOF = EOF(lngFileHandle)
Else
IsEOF = True
End If
End Function