ファイルオープンフラグの値は、開くファイルのアクセスモード指定に使用します。
定数 | 値 | 詳細 |
---|---|---|
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 | シンプルなテキストファイル(UnicodeまたはANSI文字列に変換)。 フラグは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 | クライアントターミナルのcommonフォルダのファイルパス(\Terminal\Common\Files)。 フラグはFileOpen(),FileCopy(),FileMove(),FileIsExist()関数で使用されます。 |
1つ以上のファイルを開く時、いくつかフラグを指定する事が出来ます。
フラグを組み合わせる事が出来ます。
フラグの組み合わせは、論理和の符号(|)を使用します。
例えば、CSV形式のファイルを読み取りと書き込みモードで開くには、
FILE_READ | FILE_WRITE | FILE_CSV
と書きます。
サンプルソース:
const string filename = "test.csv"; // ファイル名
int filehandle; // ファイルハンドラ
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_TXTまたはFILE_CSV)の読み込みの為に開く時、
特殊な2バイト(0xff,0xfe)で始まるファイルの場合はFILE_ANSIが指定されていても、
FILE_UNICODEで開かれます。