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

 
Nikolai Semko # :

Ах, неужели эта тема в дебаге больше не работает?
Печалька :(( Очень пригождалась в работе


Сообщено более 4 месяцев назад . Никто не заботится.

Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях
Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях
  • 2021.08.18
  • www.mql5.com
В пятницу 18 июня 2021 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Vladimir Pastushak #:
Финансы: Нефинансовый вопрос

Открыта, Начата:  2021.09.02 10:45 , #3182963

Здравствуйте! Активировал тиккет так как кнопка "Новая заявка" не работает.

Причина обращения: В сигналах не сохраняется описание последних 4х языков, Корейский, итальянский, французский, турецкий.

Поднимаю, так как не работает.

 
Нужен скрипт, который на всех запущенных MT4/5 Терминалах запустит скрипт/сервис. Подскажите PostMessage-параметры.
 
fxsaber #:
Нужен скрипт, который на всех запущенных MT4/5 Терминалах запустит скрипт/сервис. Подскажите PostMessage-параметры.

Я бы сделал сервис, который ждет появления файла-команды в common-папке. Ну, и скрипт для создания такой команды.

 
Andrey Khatimlianskii #:

Я бы сделал сервис, который ждет появления файла-команды в common-папке. Ну, и скрипт для создания такой команды.

Очень костыльно, да и MT4 еще актуален.

 

 Багом называть не рискну. Поэтому просто скажу, что заметил одну особенность оператора if. Прозреваю, это может относиться и к другим ЯПам.

if(a && Array[over_index]>val) {...}

Если a окажется true, то проверка перейдёт к Array[over_index] и тут-то терминал начнёт дико бомбить по части 'array out of range', что совершенно справедливо. Если же a окажется false, до проверки условия истинности Array[over_index], а значит, и избыточности индекса дело не дойдёт, if проскочит дальше, а кодер так и не узнает, что у него в программе гуляет массив с несуществующим индексом... точнее существующим, но избыточным.

 Может, это надо пофиксить, чтобы проверка на предмет  'array out of range' происходила в if до самого конца и выдавалось бы такое же сообщение? Или это сильно уронит скорость работы оператора?


 
x572intraday #:

 Багом называть не рискну. Поэтому просто скажу, что заметил одну особенность оператора if. Прозреваю, это может относиться и к другим ЯПам.

Если a окажется true, то проверка перейдёт к Array[over_index] и тут-то компилятор  терминал начнёт дико бомбить по части 'array out of range', что совершенно справедливо. Если же a окажется false, до проверки условия истинности Array[over_index], а значит, и избыточности индекса дело не дойдёт, if проскочит дальше, а кодер так и не узнает, что у него в программе гуляет массив с несуществующим индексом... точнее существующим, но избыточным.

 Может, это надо пофиксить, чтобы проверка на предмет  'array out of range' происходила в if до самого конца и выдавалось бы такое же сообщение? Или это сильно уронит скорость работы оператора?


В вашем случае это не так поскольку должны быть выполнены оба условия. А вот если поставить такое

if(a || Array[over_index]>val) {...}
то, да. При выполненном условии «а» второе условие проверяться не будет. За это боролись много лет, а вы теперь предлагаете вернуться в прошлый век…
 
x572intraday #:

 Багом называть не рискну. Поэтому просто скажу, что заметил одну особенность оператора if. Прозреваю, это может относиться и к другим ЯПам.

Если a окажется true, то проверка перейдёт к Array[over_index] и тут-то терминал начнёт дико бомбить по части 'array out of range', что совершенно справедливо. Если же a окажется false, до проверки условия истинности Array[over_index], а значит, и избыточности индекса дело не дойдёт, if проскочит дальше, а кодер так и не узнает, что у него в программе гуляет массив с несуществующим индексом... точнее существующим, но избыточным.

 Может, это надо пофиксить, чтобы проверка на предмет  'array out of range' происходила в if до самого конца и выдавалось бы такое же сообщение? Или это сильно уронит скорость работы оператора?

Если изменить поведение, то нормально написанные программы просто "упадут", а те которые не написаны, будет сложно написать.

Почитайте, там есть некоторое описание

 
x572intraday #:

Багом называть не рискну.

это нормальное поведение везде. если вам надо чтобы аргумент вычислялся всегда, вычисляйте его перед if-ом

 
Alexey Viktorov #:

В вашем случае это не так поскольку должны быть выполнены оба условия. А вот если поставить такое

то, да. При выполненном условии «а» второе условие проверяться не будет. За это боролись много лет, а вы теперь предлагаете вернуться в прошлый век…

Проверьте

// +--------
int start()
{
 if(false && Test()) { 
  Print("if Yes"); // Это никогда не напечатает
 }
}

// +--------
bool Test() {
 Print("Test"); // Это тоже, к ней не дошла очередь
 return(true);
}
Причина обращения: