返回一个空闲的文件号
语法
用法
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差别
参考