FileAttr
 
返回有关打开的文件编号的信息

语法

Declare Function FileAttr ( ByVal filenum As Integer, ByVal returntype As Integer = 1 ) As Integer

用法

#include "file.bi"
result = FileAttr( filenum , [ returntype ] )

or

#include "vbcompat.bi"
result = FileAttr( filenum , [ returntype ] )

参数

filenum
使用Open打开的文件或设备的文件编号
returntype
指示要返回的信息类型的Integer.

返回值

与返回类型相关联的值,否则为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),返回值是以下值之一:
编码不变
0ASCIIfbFileEncodASCII
1UTF-8fbFileEncodUTF8
2UTF-16fbFileEncodUTF16
3UTF-32fbFileEncodUTF32


例子

#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的新功能

参考