2013-07-23 38 views
0

LOF返回0長度的文件(LOF)返回0

這裏是文件

enter image description here

下面是一個簡單的功能

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 在通過聲明FileBytesLong,但它不工作處處工作上面的示例功能LOF。例如,在下面的行,既LOCLOF正在返回0

Do Until Loc(FF) >= LOF(FF) 

編輯3

不知何故,文件路徑被改變,因此Open FileFullQualifiedName For Binary Access Read As #f是創造一個新的文件,並且顯然,LOF是返回0這個空文件

+0

爲什麼FileBytes和LineCount被聲明爲雙?他們需要長 – rags

+0

@rags它通過聲明長期工作,這意味着這個功能不會工作,如果文件大小> 2GB – bjan

+0

@rags即使變量被宣佈爲長期它不是在所有的地方工作 – bjan

回答

0

我的錯誤

不知何故,文件路徑被改變,因此Open FileFullQualifiedName For Binary Access Read As #f是創建一個新的文件,顯然,LOF返航0這個空文件