Возвращает свободный номер файла
Синтаксис
Использование
result = FreeFile
Возвращаемое значение
Следующий доступный файловый номер, если таковой имеется, в противном случае
– нуль (0).
Описание
Возвращает номер следующего свободного файла с допустимыми значениями от 1
до 255, или 0, если уже 255 файлов открыто. Это значение является
обязательным аргументом для функции
Open.
FreeFile
полезна при открытии файлов в сложных программах, где программисту сложно
следить за номерами используемых файлов.
Убедитесь, что файловые номера освобождаются, когда больше не требуются, в
противном случае вы получите утечку файловых номеров и не сможете открыть
файлы с номером, большим чем 255.
FreeFile всегда возвращает наименьший свободный номер файла.
Номер файла, возвращаемый
FreeFile не изменится до тех пор,
пока этот номер файла открыт
Open, и
пока не закрыт файл с помощью
Close.
По этой причине целесообразно использовать
FreeFile
непосредственно перед вызовом
Open,
для обеспечения того, чтобы номер файла оказался свободным и не
использовался в другом месте.
Пример
' Создаем строку и заполним ее.
Dim buffer As String, f As Integer
buffer = "Hello World within a file."
' Найдем первый свободный номер файла.
f = FreeFile
' Откроем файл "file.ext" в
бинарном режиме, по номеру файла в "f".
Open "file.ext" For Binary As #f
' Поместим нашу строку в файл, используя номер файла "f".
Put #f, , buffer
' Закроем файл.
Close #f
' Конец программы. (Проверьте файл "file.ext" после
запуска , чтобы увидеть работу программы.)
End
При использовании нескольких определений
FreeFile,
FreeFile
должна быть использована непосредственно перед
Open:
Dim fr As Integer, fs As Integer
' ПРАВИЛЬНЫЙ путь:
fr = FreeFile
Open "File1" For Input As #fr
fs = FreeFile
Open "File2" For Input As #fs
В отличие от:
Dim fr As Integer, fs As Integer
' НЕВЕРНЫЙ путь:
fr = FreeFile
fs = FreeFile '' fs принял
тот же номер файла , что и fr
Open "file1" For Input As #fr
Open "file2" For Input As #fs '' Ошибка:
файловый номер уже используется
Различия платформ
- В Windows номер файла, используемый в библиотеке динамической
компоновки не тот же самый, что в основной программе, хоть они и
имеют одинаковые номера. Номера файлов не могут быть переданы
или возвращены в\из библиотеки DLL из\в исполняемый файл.
- Кроме того предел FreeBASIC - 255 открытых файлов в программе в одно время.
Существует предел ОС для общего количества открытых файлов, но, как правило, это
вас не затронет, за исключением DOS, где предел может быть всего 15 файлов.
Отличия от QB
Смотрите также