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
Edit 2 В приведенной выше функции LOF
образца работал объявляя FileBytes
как Long
, но он не работает везде. Например, в следующей строке, как LOC
и LOF
возвращаются 0
Do Until Loc(FF) >= LOF(FF)
Редактировать 3
Каким-то образом, путь к файлу был изменен, и, следовательно, Open FileFullQualifiedName For Binary Access Read As #f
создавал новый файл, и, очевидно, LOF
был возвращение 0
для этого пустого файла
Почему FileBytes и LineCount объявлены как Double ?? Они должны быть длинными – rags
@rags Это действительно работало, объявив как долго, это означает, что эта функция не работает, если размер файла> 2GB – bjan
@rags. Он не работает во всех местах, хотя переменная объявлена как Long – bjan