ファイルのシーク位置定数(ENUM_FILE_POSITION)
ファイルのシーク位置定数(ENUM_FILE_POSITION)は、ファイルのどこからどこまでを読み込むのかを、設定するための定数です。
例えば、ファイルのヘッダー部分を読み飛ばすために、「ファイルの先頭から100文字までは無視する」という設定が可能です。
ファイルのシーク位置定数を使うには、以下の関数を使います。
- FileSeek関数:ファイルのシーク位置を設定する関数
ファイルのシーク位置定数(ENUM_FILE_POSITION)
定数 | 説明 |
SEEK_SET | ファイルの先頭 |
SEEK_CUR | 現在のファイルのシーク位置 |
SEEK_END | ファイルの最後 |
ファイルのシーク位置定数の使い方
主に、FileSeek関数で使用されます。
FileSeek関数の第3引数(origin)として、ファイルのシーク位置定数が使用されます。
例えば、以下のように使用します。
void OnInit()
{
//ファイルパスを指定
string path = "folder/data.csv";
//ファイルを読み込み可能・CSV形式で読み込む
int handle = FileOpen(path,FILE_READ|FILE_CSV);
//ファイルの読み込みエラーチェック
if(handle != INVALID_HANDLE)
{
//文字列番号をランダムに選ぶ
ulong ind=MathRand()%size;
//位置を文字列の始めにシフトする
if(FileSeek(handle,ind,SEEK_SET)==true)
{
//ind 番号で文字列を読んで出力する
PrintFormat("String text with %d number: \"%s\"",ind,FileReadString(handle));
}
//ファイルを閉じる
FileClose(handle);
}
}
【補足】ファイルのシーク位置定数の列挙型(ENUM_FILE_POSITION)
ファイルのシーク位置定数は、ENUM_FILE_POSITIONという列挙型に含まれています。
列挙型は、定数群をひとまとめにしたものです。
以下のように使います。
ENUM_FILE_POSITION filePosition = SEEK_SET;
上記のようにプログラムすると、filePosition変数に SEEK_SETの値が代入されます。