返回有关打开的文件编号的信息
语法
用法
#include "file.bi"
result = FileAttr( filenum , [ returntype ] )
or
#include "vbcompat.bi"
result = FileAttr( filenum , [ returntype ] )
参数
返回值
与返回类型相关联的值,否则为0。
说明
根据提供的
returntype 返回有关文件编号的信息
值 | 描述 | 不变 |
1 | 文件模式 | fbFileAttrMode |
2 | 文件句柄 | fbFileAttrHandle |
3 | 编码 | fbFileAttrEncoding |
对于文件模式,
returntype = 1(
fbFileAttrMode)返回值是以下值中的一个或多个的总和:
值 | 文件模式 | 不变 |
1 | 输入 | fbFileModeInput |
2 | 产量 | fbFileModeOutput |
4 | 随机 | fbFileModeRandom |
8 | 附加 | fbFileModeAppend |
32 | 二进制 | fbFileModeBinary |
对于文件句柄
returntype = 2(
fbFileAttrHandle),返回值是文件类型设备的C运行时提供的文件句柄。
仅在Windows上:对于文件句柄
returntype = 2(
fbFileAttrHandle),COM设备返回的值是设备首次打开时由
CreateFile()返回的句柄。LPT设备返回的值是设备首次打开时由
OpenPrinter()返回的句柄。该句柄值可以传递给其他Windows API函数。
仅在Linux上:对于文件句柄,
returntype = 2(
fbFileAttrHandle),COM设备返回的值是在首次打开设备时由open()返回的文件描述符。
对于编码,
returntype = 3(
fbFileAttrEncoding),返回值是以下值之一:
值 | 编码 | 不变 |
0 | ASCII | fbFileEncodASCII |
1 | UTF-8 | fbFileEncodUTF8 |
2 | UTF-16 | fbFileEncodUTF16 |
3 | UTF-32 | fbFileEncodUTF32 |
例子
#include "vbcompat.bi"
#include "crt.bi"
Dim f As FILE Ptr, i As Integer
''打开一个文件并写一些文本
Open "的test.txt" For Output As #1
f = Cast( FILE Ptr, FileAttr( 1, fbFileAttrHandle ))
For i = 1 To 10
fprintf( f, !"线%i \\ n", i )
Next i
Close #1
''重新打开文件并读取文本
Open "的test.txt" For Input As #1
f = Cast( FILE Ptr, FileAttr( 1, fbFileAttrHandle ))
While feof(f) = 0
i = fgetc(f)
Print Chr(i);
Wend
Close #1
与QB差别
- returntype = 1
- QBasic和16位Visual Basic返回DOS文件句柄returntype = 2
- returntype = 3是FreeBASIC的新功能
参考