binファイル内の配列を読取 FileReadArray 関数

関数

ファイル関数

FileReadArray 関数

 この関数は、開いているbinファイルファイルポインタの現在位置から配列データ(文字列データを除く)を読み取ります。

 文字列・動的配列を含まない構造体配列も読み取り可能です。 

 文字列の配列データは txtファイルから読み取ることができます。

 読み取るファイルの指定は、FileOpen関数によって取得されるファイルハンドルを使って行ないます。

データ型と構成・戻り値

uint FileReadArray(①, ②, ③, ④);

 戻り値は、処理が成功した場合は、読み取った配列の要素数を返します。エラーの場合は 0を返します。

 発生するエラーについては、GetLastError関数で取得することができます。

引数 [4]

 FileReadArray関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
file_handleintFileOpen関数によって取得されるファイルハンドル
array[]void&データを読み取る配列。
startint0読み取る配列の開始位置。インデックス値で指定します。初期値の「0」は始めから読み取ります。
countintWHOLE_ARRAY読み取る要素数。初期値の「WHOLE_ARRAY」は開始位置以降のすべてのデータを読み取ります。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

FileReadArray関数による binファイル内の配列データの読み取り

 FileReadArray関数を使って指定した binファイル内の配列データを読み取ります。読み取ったデータは arr2配列(引数②)の中に格納されます。

 binファイルには FileWriteArray関数を使って配列データ{9, 8, 7}を書き込んだものを準備します。

 作成した「test.bin」の場所については FileOpen関数のページで確認してください。

コード

// FileReadArray関数による binファイル内の配列データの読み取り
#property strict
void OnInit() {

string filename = "test.bin";  // ファイル名
int handle;                    // ファイルハンドル
    
handle = FileOpen(filename, FILE_READ | FILE_WRITE | FILE_BIN );

int arr1[]={9,8,7};            // ファイルに書き込む配列データ
uint e = FileWriteArray(handle, arr1, 0, WHOLE_ARRAY);

FileSeek(handle, 0, SEEK_SET); // ファイルポインタの位置を先頭に移動

int arr2[];                    // ファイルの配列データを読み出す配列データ
FileReadArray(handle, arr2, 0, WHOLE_ARRAY);

Print("配列の要素数:", e);
Print("binファイルに書き込んだ配列の内容:{ ",arr2[0],", ",arr2[1],", ",arr2[2]," }");

FileClose(handle);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました