0
LOF返回0长度的文件(LOF)返回0
这里是文件
下面是一个简单的功能
Public Function GetNumberOfLinesInFile(ByVal FileFullQualifiedName As String) As Double
Dim f As Integer
Dim FileBytes As Double
Dim LineCount As Double
f = FreeFile(0)
Open FileFullQualifiedName For Binary Access Read As #f
FileBytes = LOF(f)
'//CODE MISSING
Close #f
GetNumberOfLinesInFile = LineCount
End Function
编辑 它看起来它不适用于Binary Access
,如果文件打开如下,它工作正常
Open FileFullQualifiedName For Input Access Read As #f
编辑2 在通过声明FileBytes
为Long
,但它不工作处处工作上面的示例功能LOF
。例如,在下面的行,既LOC
和LOF
正在返回0
Do Until Loc(FF) >= LOF(FF)
编辑3
不知何故,文件路径被改变,因此Open FileFullQualifiedName For Binary Access Read As #f
是创造一个新的文件,并且显然,LOF
是返回0
这个空文件
为什么FileBytes和LineCount被声明为双?他们需要长 – rags
@rags它通过声明长期工作,这意味着这个功能不会工作,如果文件大小> 2GB – bjan
@rags即使变量被宣布为长期它不是在所有的地方工作 – bjan