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

 
AlexSTAL:
Блин... С терминалом в комплекте идёт столько примеров... мама не горюй... к примеру скрипт SymbolInfoSample.mq5
Иногда в начале пути достаточно определиться с новыми понятиями. И уж затем исследовать примеры программ.
 
Как получить полный путь к include файлу?


есть две функции

__FILE__ - он дает только имя файла

MQL5_PROGRAM_PATH - дает путь к результирующему ex5 файлу


вопрос - как в mqh-файле узнать где он находится?

 
В МетаЕдиторе по кнопке "Список функций в файле" открывается список. Если его листать вниз, то он кончается на букве P, и дальше не сдвигается(черный треугольник, направленный вниз, становится неактивным), хотя классы есть и на букву R. Просьба исправить.
 
-Alexey-:
В МетаЕдиторе по кнопке "Список функций в файле" открывается список. Если его листать вниз, то он кончается на букве P, и дальше не сдвигается(черный треугольник, направленный вниз, становится неактивным), хотя классы есть и на букву R. Просьба исправить.

А хотя бы приблизительный размер списка какой? Может по размеру списка ограничение есть...
 

Не знаю что это баг или фишку нашел. Следующий код работает, но выдает предупреждение expression is not boolean

void OnStart()
  {
//---
   int a=3;
   int b=3;
   int c=3;
//---   
   if(a=b=c=3)Alert("a=b=c=3");
   else Alert("Условие не верно");
//---
  }
 
sergey1294:

Не знаю что это баг или фишку нашел. Следующий код работает, но выдает предупреждение expression is not boolean



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

Единственно что операнд if не приведён к bool, на это и даёт предупреждение компилятор а в остальном всё верно написано.

a,b,c кстати вообще можно не инициализировать тк они явно присваиваются в if.

3 присваиваем в a, a присваиваем в b, b присваиваем в с, а уж потом проверяем если с true то пишим Print().

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора - Документация по MQL5
 
sergey1294:

Не знаю что это баг или фишку нашел. Следующий код работает, но выдает предупреждение expression is not boolean


Скорей всего так

void OnStart()
{
//----------------------------------------------------------------------------//
//Work variables
int a=3;
int b=3;
int c=3;
//----------------------------------------------------------------------------//
  if(a&&b&&c==3)Alert("a=b=c=3");
  else Alert("Условие не верно");
//----------------------------------------------------------------------------//
}
 

Тогда подскажите как это выражение записать что бы не ругался.

void OnStart()
  {
//---
   int a=1;
   int b=2;
   int c=3;
//---   
   if(a<b<c)Alert("a<b<c");
   else Alert("Условие не верно");
//---
  }
 
sergey1294:

Тогда подскажите как это выражение записать что бы не ругался.


if(a<b&&b<c){Print("");}

в первом посте вы делаете операции присвоения, множественное каскадное присвоение допустимо. Тут же вы пытаетесь делать множественное сравнение.

ЗЫ поскольку на выходе у вас два результата сравнения то они должны быть разделены && или другим булевым оператором.

 
sergey1294:

Тогда подскажите как это выражение записать что бы не ругался.


Предлагаю так

//----------------------------------------------------------------------------//
//Work variables
int a=1;
int b=2;
int c=3;
//----------------------------------------------------------------------------//
  if(a<b&&b<c)Alert("a<b<c");
  else Alert("Условие не верно");
//----------------------------------------------------------------------------//

Николай опередил :)

Urain:

ЗЫ поскольку на выходе у вас два результата сравнения то они должны быть разделены && или другим булевым оператором.

В данном случае только &&.
Причина обращения: