FreeFile
 
Возвращает свободный номер файла

Синтаксис

Declare Function FreeFile ( ) As Integer

Использование

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

  • Нет

Смотрите также