Ошибки, баги, вопросы - страница 2434

 
fxsaber:

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

думаю, что нужно себя заставлять пользоваться готовыми решениями, по крайней мере я на этом пути, вот в течении 5 минут сделал запись OHLC в файл

#property copyright "Copyright 2019, IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property show_inputs
input string FName="tst";
#include <Files\FileTxt.mqh>

CFileTxt *FOut;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   FOut=new CFileTxt();
   string sname=FName+"_"+_Symbol+"_"+EnumToString((ENUM_TIMEFRAMES)_Period)+".csv";
   FOut.Open(sname,FILE_WRITE|FILE_TXT);
   Print("Open file");
   Print("File name = ",FOut.FileName());
   int count=0;
   for(int i=Bars-1;i>=0;i--)
     {
      string s=TimeToStr(Time[i])+";"+DoubleToStr(Open[i],_Digits)+";"+DoubleToStr(High[i],_Digits)+";"+DoubleToStr(Low[i],_Digits)+";"+DoubleToStr(Close[i],_Digits)+"\n";
      FOut.WriteString(s);
      count++;
     }
   Print("Write ",count," bars");
   FOut.Flush();
   FOut.Close();
   delete FOut;
  }

при использовании класса  CFileTxt не нужно думать где взять свойства файла - все доступно на всем протяжении выполнения программы

 
Igor Makanu:

думаю, что нужно себя заставлять пользоваться готовыми решениями, по крайней мере я на этом пути, вот в течении 5 минут сделал запись OHLC в файл

Вы сделали это

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2019.04.17 14:00

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

 
fxsaber:

Вы сделали это

да я знаю, но тут просто нужно попытаться понять идеологию разработчиков - они довольно много готовых решений подготовили в СБ, 

 
fxsaber:

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

А хорошо бы.

Зачем?

 
Igor Makanu:

да я знаю, но тут просто нужно попытаться понять идеологию разработчиков - они довольно много готовых решений подготовили в СБ, 

Безусловно, это понятно. Все же речь шла о другом.

 
Slava:

Зачем?

Отлаживаю чужой код, в котором идет передача хендлов из одних методов в другие функции.

Хочу сделать распринтовку конкретного хендла, что сейчас используется в стоп-строке - что за файл? И сделать это ну очень сложно.

 
fxsaber:

Отлаживаю чужой код, в котором идет передача хендлов из одних методов в другие функции.

Хочу сделать распринтовку конкретного хендла, что сейчас используется в стоп-строке - что за файл? И сделать это ну очень сложно.

распринтуйте хэндлы в момент открытия файла( обычно в ОнИнит?)

и потом при использовании хэндла распринтуйте , потом сопоставите имя = хэндл

хендл все равно обычное число и оно не изменяется пока открыт файл, если не ошибаюсь, то вроде сквозная нумерация у хэндлов файлов 1,2,3... по очереди открытия файлов - давно не проверял

 
Igor Makanu:

распринтуйте хэндлы в момент открытия файла( обычно в ОнИнит?)

и потом при использовании хэндла распринтуйте , потом сопоставите имя = хэндл

Так не пойдет. Нахожусь в функции, которая из каких-то дебрей получила хэндл и собирается с ним работать.

 
fxsaber:

@Slava, несколько раз просил раскрыть opt-формат, но ответа не последовало.

Возможно ли раскрыть mqd-формат? Сейчас в Files\Tester может быть несколько mqd-файлов, но нет не только возможности выбрать нужный. Иногда Frame-считывание не срабатывает, если подождать некоторые время после завершения оптимизации.

Не хотелось бы терять важные данные, полученный в mqd-файле во время длительных оптимизаций. Поэтому раскрытие mqd-формата сильно бы помогло решить эту проблему.

Ответа не стал дожидаться.

Frames
Frames
  • www.mql5.com
Соответствующие методы имеют тот же синтаксис и логику использования, что и соответствующие штатные функции. Пример Сценарии использования Провели Frame-оптимизацию и нужно вернуться к ее результатам. Решили сохранить/передать результат Frame-оптимизации через...
 
fxsaber:

Так не пойдет. Нахожусь в функции, которая из каких-то дебрей получила хэндл и собирается с ним работать.

ну как вариант, обьявите структуру (класс)

class CFileAndName{int handle; string name}

и во всех ф-циях работы с файлами описание ф-ции замените на этот класс вместо хендла, возни конечно много, но точно имя файла не потеряете