FileReadArray - считывание последних элементов

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vasiliy Pushkaryov
6959
Vasiliy Pushkaryov  

Мне понадобилось записать два массива, а потом их считать в новые массивы. Ниже код:

// массивы для записи в файл
double w1[];
double w2[];

// массивы для считывания из файла
double r1[];
double r2[];

void OnStart()
{
   // --- Расширим массивы на 5 ячеек
  ArrayResize(w1, 5);
  ArrayResize(w2, 5);
  Print("Write  ArraySize(w1)=", ArraySize(w1), " ArraySize(w2)=", ArraySize(w2));

   // --- Запишем массивы в бинарный файл  
  int hnd = FileOpen("ArrayRecord", FILE_WRITE|FILE_BIN);
  FileWriteArray(hnd, w1);
  FileWriteArray(hnd, w2);
  FileClose(hnd);

   // --- Откроем сохраненный файл и считаем из него в массивы r1[] и r2[] по 5 ячеек
  hnd = FileOpen("ArrayRecord", FILE_READ|FILE_BIN);
  int numR1 = FileReadArray(hnd, r1, 0, 5);
  int numR2 = FileReadArray(hnd, r2, 5, 5);
  FileClose(hnd);
  
   // Количество считанных элементов с обоих массивов по 5
  Print("Read  numR1=", numR1, " numR2=", numR2);
   // Размер 1-го массива автоматически расширен на 5 ячеек, размер 2-го массива расширен на 10 ячеек. Почему?
  Print("Read  ArraySize(r1)=", ArraySize(r1), " ArraySize(r2)=", ArraySize(r2));
}

Результат:


Считывание обоих массивов происходит по 5 элементов, но почему-то второй массив расширяется до размерности 10. Подскажите, что не так делаю, как сделать чтобы второй массив расширялся до размерности 5?

fxsaber
16748
fxsaber  
int numR2 = FileReadArray(hnd, r2, 0, 5);
Vasiliy Pushkaryov
6959
Vasiliy Pushkaryov  
fxsaber:
Спасибо, помогло.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий