FreeFile
 
返回一个空闲的文件号

语法

Declare Function FreeFile ( ) As Integer

用法

result = FreeFile

返回值

下一个可用的文件编号(如果有的话)否则为零(0)。

说明

将有效值1的下一个可用文件号码的数量返回到255,如果已打开255个文件,则返回0.此值是Open文件的必需参数。FreeFile在程序员无法跟踪使用的文件编号的复杂程序中打开文件时很有用。
确保在不再需要时关闭文件,否则将导致文件号码泄漏,并且在程序运行时,255个文件耗尽后,将无法打开任何文件。
FreeFile将始终返回最小的可用文件编号。由FreeFile返回的文件编号将不会更改,直到该文件编号为Open或直到较小的文件编号为Closed。因此,在相应的Open之前使用FreeFile是明智的,以确保文件编号不会在其他地方返回并打开。

例子

'创建一个字符串并填充它。
Dim buffer As String, f As Integer
buffer = "一个文件中的Hello World。"

'找到第一个免费的文件号。
f = FreeFile

'打开文件“file.ext”进行二进制使用,使用文件号“f”。
Open "file.ext" For Binary As #f

'将我们的字符串放在文件中,使用文件号“f”。
Put #f, , buffer

'关闭文件。
Close #f

'结束程序。(运行时查看文件“file.ext”查看输出。)
End


打开语句之前,应使用多个FreeFile语句,FreeFile
Dim fr As Integer, fs As Integer
'正确的方式:
fr = FreeFile
Open "文件1" For Input As #fr

fs = FreeFile
Open "文件2" For Input As #fs


相反:
Dim fr As Integer, fs As Integer
'错误的方法:
fr = FreeFile
fs = FreeFile ''fs采用与fr相同的文件编号

Open "文件1" For Input As #fr
Open "文件2" For Input As #fs ''错误:文件编号已经打开


平台差异

  • 在Windows上,动态链接库中使用的文件号与主程序中使用的文件号不同。文件编号不能传递或返回,然后在DLL和可执行文件之间使用。
  • 除了FreeBASIC每个打开的程序的255个文件的限制同时打开的文件总共有一个操作系统限制,但通常你不会触摸它,除了DOS,限制可能低至15个文件总数。

与QB差别

  • 没有

参考