ファイルを開く際のフラグ
ファイルを開く際のフラグはファイルのアクセスモードを指定します。フラグは下記の様に定義されます。
識別子 |
値 |
説明 |
---|---|---|
FILE_READ |
1 |
ファイルは読み込むために開かれます。フラグは FileOpen() で使用されます。ファイルを開く際には FILE_WRITE 及び/または FILE_READ 仕様が必要です。 |
FILE_WRITE |
2 |
ファイルは書き込むために開かれます。フラグは FileOpen() で使用されます。ファイルを開く際には FILE_WRITE 及び/または FILE_READ 仕様が必要です。 |
FILE_BIN |
4 |
(文字列への変換文字列を含まない)バイナリ読み込み/書き込みモードです。フラグは FileOpen() で使用されます。 |
FILE_CSV |
8 |
CSV ファイル(全ての要素が Unicode または ANSI の適切な型の文字列に変換されセパレータで区切られています)。フラグは FileOpen() で使用されます。 |
FILE_TXT |
16 |
単純なテキストファイル(CSV ファイルと同じですが、セパレータを考慮しません)。フラグは FileOpen() で使用されます。 |
FILE_ANSI |
32 |
ANSIタイプ( 1 バイトのシンボル)の文字列。フラグは FileOpen() で使用されます。 |
FILE_UNICODE |
64 |
UNICODE タイプ( 2 バイトのシンボル)の文字列。フラグは FileOpen() で使用されます。 |
FILE_SHARE_READ |
128 |
複数のプログラムからの読み込みのための共通のアクセス。フラグは FileOpen() で使用されますがファイルを開く時の FILE_WRITE 及び/または FILE_READ フラグは必要です。 |
FILE_SHARE_WRITE |
256 |
複数のプログラムからの書き込みのための共通のアクセス。フラグは FileOpen() で使用されますがファイルを開く時の FILE_WRITE 及び/または FILE_READ フラグは必要です。 |
FILE_REWRITE |
512 |
FileCopy() 及び FileMove() 関数でのファイル上書きを可能にします。ファイルが存在し、書き込み用に開かれる必要があります。さもなければ、ファイルは開かれません。 |
FILE_COMMON |
4096 |
全てのクライアント端末の共有フォルダ内のファイルパス \Terminal\Common\Files。フラグは FileOpen()、FileCopy()、FileMove() 及び FileIsExist() 関数で使用されます。 |
ファイルを開く時には、1 つ以上のフラグを指定することが出来ます。これは、フラグの組み合わせです。フラグの組み合わせは、列挙されたフラグの間に配置され( | )の論理和の符号を使用して書かれます。例えば、ファイルを CSV フォーマットで読み書きするために開くには、FILE_READ|FILE_WRITE|FILE_CSV の組み合わせを指定します。
例:
int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV); |
読み書きのフラグの指定には、いくつかの特定の機能があります。
- FILE_READ が指定されると、既存するファイルを開く試みがなされます。ファイルが存在しない場合、ファイルを開く操作は失敗し、新しいファイルは作成されません。
- FILE_READ|FILE_WRITE – 指定された名称のファイルが存在しない場合は、新しいファイルが作成されます。
- FILE_WRITE – ファイルは、ゼロサイズで再作成されます。
ファイルを開く際には FILE_WRITE 及び/または FILE_READ が必要です。
開いているファイルの読み込みの種類を定義するフラグには優先順位があります。最優先されるフラグは FILE_CSV 、その次が FILE_BIN で、FILE_TXT の優先度は最も低いです。複数のフラグ(FILE_TXT|FILE_CSV または FILE_TXT|FILE_BIN または FILE_BIN|FILE_CSV)が同時に指定された場合、最高の優先度のフラグが使用されます。
エンコーディングの種類を定義するフラグにも優先順位があります。FILE_UNICODE の優先度は FILE_ANSI より高いです。なので、もし FILE_UNICODE|FILE_ANSI が指定された場合 FILE_UNICODE が使用されます。
FILE_UNICODE と FILE_ANSI のどちらもが指定されない場合には、FILE_UNICODE が暗示されます。FILE_CSV、FILE_BIN、FILE_TXT の 1 つも指定されない場合には、FILE_CSV が暗示されます。
もしファイルがテキストとして読まれるために開かれれ(FILE_TXT または FILE_CSV)ファイルの始めに特別な 2 バイトの印 0xff,0xfe がある場合、FILE_ANSI が指定されたとしても、エンコーディングフラグは FILE_UNICODE となります。
参照