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

 
Slava:

Попробовал ещё раз (а вдруг?).

Позволяет

У Вас не 1653 билд, похоже.

void OnStart()
{
  Print(ChartSaveTemplate(0, "\\Files\\MyPreferredTemplates\\cewl.tpl"));
  Print(TerminalInfoInteger(TERMINAL_BUILD));
}


Результат

false
1653
 
fxsaber:

Задумался, а правильно ли это, раз порождает такие на самом деле ОЧЕНЬ сложно выявляемые ошибки.

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

Возможно ваши мысли о чём-то другом, но для конкретного случая банальная невнимательность программиста привела к такой ошибке.

А не будет раздражать портянка в несколько метров с предупреждениями?

 
fxsaber:

У Вас не 1653 билд, похоже.


Результат

Видимо папка MyPreferredTemplates отсутствует. А при сохранении папка не создаётся. Убрал папку из пути и вот результат.

2017.09.11 14:59:51.538 00 (EURUSD,H1)  true
2017.09.11 14:59:52.328 00 (EURUSD,H1)  1653
 
Alexey Viktorov:

Видимо папка MyPreferredTemplates отсутствует. А при сохранении папка не создаётся. Убрал папку из пути и вот результат.

Спасибо, не догадался бы! Теперь пашет. До этого пробовал "..\\..\\Files\\template.tpl" - не получилалось так же. Что обозначает слэш перед Files, что работает "\\Files\\template.tpl"? Как до него можно было догадаться?

 
fxsaber:

У Вас не 1653 билд, похоже.


Результат

Работает с билда 1565. С марта 2017 года.

GetLastError что возвращает?

 
fxsaber:

Спасибо, не догадался бы! Теперь пашет. До этого пробовал "..\\..\\Files\\template.tpl" - не получилалось так же. Что обозначает слэш перед Files, что работает "\\Files\\template.tpl"? Как до него можно было догадаться?

Слеш в начале имени файла означает "от корня MQL5"
 
Slava:

Работает с билда 1565. С марта 2017 года.

GetLastError что возвращает?

Помогли разобраться. Сложно сказать, правильное ли это поведение, что без наличия папки шаблон не сохраняется.

 
Slava:
Слеш в начале имени файла означает "от корня MQL5"

Спасибо, нигде раньше этого не встречал.

 
fxsaber:

Спасибо, нигде раньше этого не встречал.

Что первым вспомнилось

path

[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки каталог_данных_терминала\MQL5\. Если обратной косой черты нет, то ресурс ищется относительно расположения EX5-файла, из которого вызывается функция.

Есть ещё где-то...
Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
Общие функции / ResourceCreate - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava:

Работает с билда 1565. С марта 2017 года.

GetLastError что возвращает?


Благодарю...