Как узнать через код номер прохода оптимизации??

 
Тестирую эксперта,а результаты сохраняю в файл запуская код по сохранению данных в файл в deinit(),
но что - то не придумывается простой способ как узнать номер прохода :(
не открывать же файл с результатами программно и считать в нем количество строчек??!!

Или я чтото упустил? Есть какаято функция такая??
 
нет такой функуции. сделайте еще один файл и пишите в него номер прохода.
 
Хмм... ужасный способ конечно,но походу так и придется делать, если чтото более нормальное не подскажут :(
хотя можно через Excel но это тоже коряво как-то...
 
А нее,придумал... через
GlobalVariableSet("passNo",pass);
все работает отлично.... всем спасибо :)
 

Может кому пригодится:

#import "winmm.dll"
int timeGetTime();  // Returns the system time (time elapsed since Windows was started), in milliseconds.
 



int iPassNum;       // Глобальный счётчик проходов, может использоваться внутри советника
 

int init()
{
   int iPassTime; // Время последнего изменения глобального счётчика проходов
   
   if (IsOptimization() == true) {
      iPassTime = timeGetTime();
      // Сколько времени прошло с момента последнего вызова init, больше 5 секунд?
      if (iPassTime - GlobalVariableGet("PassTime") > 5000) {  // Тестов давно не было (больше 5000 милисекунд)
         iPassNum = 1;
      } else {           // Тесты недавно были - продолжаем счёт
         iPassNum = GlobalVariableGet("PassNum");
         iPassNum++;
      }
      GlobalVariableSet("PassTime", iPassTime);
      GlobalVariableSet("PassNum", iPassNum);
   }
}

Идея: Запоминаем системное время Windows (через API) и сравниваем его с новым временем при каждом проходе. Если разница больше, чем, например, 5 секунд (5000 милисекунд), значит это новая оптимизация, если меньше, значит ещё идёт текущая. Использовать время терминала нельзя, так как оно эмулируется по тикам и на каждом проходе одинаковое. Последние время и номер хранятся в глобальных переменных терминала.

В переменной iPassNum - номер текущего прохода.

Условия правильной работы:

1. Должен быть разрешён импорт DLL.

2. Должно быть отключено "Пропустить бесполезные результаты", иначе будет несовпадение номеров из-за пропущеных проходов.

Причина обращения: