FreeBASIC Fileattr
目次→実行時ライブラリー参考→オペレーティング・システム関連→FILEATTR←オリジナル・サイト
開いているファイル番号の情報を、返します。
構文:
用法:
#include "file.bi"
result = FileAttr
( filenum, [ returntype ] )
または
#include "vbcompat.bi"
result = FileAttr
( filenum, [ returntype ] )
パラメタ:
filenum
Open で開かれた、ファイルか装置の、ファイル番号
returntype
返される情報の型を示す整数値。
戻り値:
戻り型に関連している値を返します。エラーの場合は、0 を返します。
記述:
ファイル番号に関する情報は、与えられた
returntype に基づいて、返されます。
値 | 記述 | 定数 |
1 | ファイル・モード | fbFileAttrMode |
2 | ファイル・ハンドル | fbFileAttrHandle |
3 | コード化 | fbFileAttrEncoding |
ファイル・モード
returntype = 1 (
fbFileAttrMode) では、戻り値は、以下の値の 1 つ以上の合計です:
値 | ファイルモード | 定数 |
1 | 入力 | fbFileModeInput |
2 | 出力 | fbFileModeOutput |
4 | 無作為 | fbFileModeRandom |
8 | 追加 | fbFileModeAppend |
32 | バイナリ | fbFileModeBinary |
ファイル・ハンドル returntype = 2 (fbFileAttrHandle)では、戻り値は、ファイル・ハンドルです。ファイル型の装置に対して C Runtime が提供するものと、同じです。
Windows だけで:
ファイル・ハンドル returntype = 2 (fbFileAttrHandle)では、COM 装置の場合の戻り値は、装置が最初に開かれたときに、CreateFile() によって返されたハンドルです。
LPT 装置の場合の戻り値は、装置が最初に開かれたときに、OpenPrinter() によって返されたハンドルです。
このハンドル値を、他の Windows API 関数に、渡すことができます。
Linux だけで:
ファイル・ハンドル returntype = 2 (fbFileAttrHandle)では、COM 装置の場合の戻り値は、装置が最初に開かれたときに、open() によって返された、ファイル・ディスクリプタです。
コード化
returntype = 3 (
fbFileAttrEncoding)では、戻り値は、以下の値の1つです:
値 | コード化 | 定数 |
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, !"Line %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
Sleep
QBからの違い:
-
returntype = 1 では、違いなし。
-
QBasic と 16ビットの Visual Basic は、returntype = 2 で、DOS ファイル・ハンドルを返しました。
-
returntype = 3 は、FreeBASICで新規作成。
参照:
ページ歴史:2016-03-13 00:46:14
日本語翻訳:WATANABE Makoto、原文著作者:JeffMarshall