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

 
Vladimir Pastushak:

По справке должна при отсутствии файла вернуть false.

Строго говоря из Документации явно не следует что результат FileGetInteger(FileName,FILE_EXISTS) это непременно bool

Но логика в любом случае витиеватая

https://www.mql5.com/ru/forum/1111/page1788#comment_4071879

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.02.08
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
 
Vladimir Pastushak:

bool file_exists=(bool)FileGetInteger(FileName,FILE_EXISTS);

В любом случае возвращает true есть файл или нет, и если файла нет то ошибку 5019. По справке должна при отсутствии файла вернуть false.

   
bool file_exists=FileIsExist(FileName); Работает правильно

Правильно будет так

bool file_exists=FileGetInteger(FileName,FILE_EXISTS)==1; 
 
Vladimir Pastushak:

Получил это в мт 5

Предоставьте пожалуйста код для изучения, через ЛС

 
fxsaber:

Движок сайта не выделяет макрос красным.

Выделение цветом должно быть только если ранее макрос был определен

#define PRICEST_TICK_PRICE bid
//...
#define PRICEST_TICK_PRICE ask

а иначе как понять что макрос ранее уже не был определен?! и это не случайное переопределение

Иногда это даже в MetaEditor работает:


 
A100:

Выделение цветом должно быть только если ранее макрос был определен

а иначе как понять что макрос ранее уже не был определен?! и это не случайное переопределение

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

Думал, все макросы подсвечиваются. Видимо, правило иное.

 
fxsaber:

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

Думал, все макросы подсвечиваются. Видимо, правило иное.

Думаю нужно определиться для чего вообще нужна подсветка: для красивости или для информативности? Сейчас правил как таковых нет:

А вообще желательно чтобы если идентификатор был ранее уже определен и не отменен (undef), то он выделялся бы цветом

 
A100:

Думаю нужно определиться для чего вообще нужна подсветка: для красивости или для информативности? Сейчас правил как таковых нет:

Для меня удобно правило: макрос всегда красный.

 
fxsaber:

Для меня удобно правило: макрос всегда красный.

А в чем здесь удобство?
#define PRICEST_TICK_PRICE bid

В чем неудобство - понятно: нельзя понять ранее идентификатор PRICEST_TICK_PRICE был определен или нет

И с чего бы ему здесь (3)

//Ln 240
#define PRICEST_TICK_PRICE ask //(1)
#undef  PRICEST_TICK_PRICE     //(2)
void OnStart()
{
        int PRICEST_TICK_PRICE; //(3)
}

быть красным? А если он здесь (3) не красный, то почему в (1) должен быть красным?

Удобное правило: идентификатор красный только если ранее(!) он был определен и не отменен

 

A100:
А в чем здесь удобство?

Вижу, что это макрос. При этом боковым зрением не требуется видеть #define.

В чем неудобство - понятно: нельзя понять ранее идентификатор PRICEST_TICK_PRICE был определен или нет

Никогда по цвету не пытался определить. Более того, если все находится в #ifdef, то в MQL4 и MQL5 могут быть разные подцветки. Проще всего сделать ALT+G на имени макроса, чтобы понять, есть он или нет.

Удобное правило: идентификатор красный только если ранее(!) он был определен

Мне было бы удобно, если макрос хотя бы один раз где-то упомянут в #define, #ifdef, #undef и т.д. Даже если он не определен.

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