Erreurs, bugs, questions - page 2332

 

Le moteur du site ne met pas en évidence la macro en rouge.

 
Vladimir Pastushak:

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

Dans tous les cas, il renvoie true s'il y a un fichier ou non, et error 5019 s'il n'y a pas de fichier. Selon l'aide, il devrait retourner false s'il n'y a pas de fichier.

bool file_exists=FileIsExist(FileName) ; Fonctionne correctement

La manière correcte serait

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

Je l'ai eu dans mt 5

Veuillez fournir le code à étudier, via PM

 
fxsaber:

Le moteur du site ne met pas la macro en rouge.

Elle ne doit être mise en évidence en rouge que si la macro a été définie précédemment.

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

Sinon, comment savoir qu'une macro n'a pas été définie auparavant ? Et ce n'est pas une substitution accidentelle.

Parfois, cela fonctionne même dans MetaEditor :


 
A100:

La couleur ne doit être mise en évidence que si la macro a été définie précédemment.

sinon, comment savoir si la macro n'a pas été définie précédemment ?! et il ne s'agit pas d'une substitution accidentelle.

Il faut ensuite définir ce qu'est une macro éclairée et ce qu'est une macro non éclairée.

Je pensais que toutes les macros étaient mises en évidence. Apparemment, la règle est différente.

 
fxsaber:

Ensuite, nous devons décider ce qui est une macro mise en évidence et ce qui ne l'est pas ?

Je croyais que toutes les macros étaient surlignées. Apparemment, la règle est différente.

Je pense que nous devons décider à quoi sert le surlignage, est-ce seulement pour la beauté ou pour l'information ? Il n'y a pas de règles en tant que telles pour le moment :

En général, il est souhaitable que si un identifiant a déjà été défini et qu'il n'est pas défendu, il soit mis en évidence en couleur.

 
A100:

Je pense que nous devons décider de la finalité de l'illumination : est-ce pour la beauté ou pour l'information ? Il n'y a pas de règles en tant que telles pour le moment :

Pour moi, la règle d'or est la suivante : la macro est toujours rouge.

 
fxsaber:

Pour moi, la règle est pratique : la macro est toujours rouge.

Quelle est la commodité ici ?
#define PRICEST_TICK_PRICE bid

L'inconvénient est clair : vous ne pouvez pas savoir si l'identifiant PRICEST_TICK_PRICE a été défini précédemment ou non.

Et pourquoi le faire ici (3)

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

être rouge ? Et si elle n'est pas rouge ici (3), pourquoi serait-elle rouge en (1) ?

Règle pratique : un identifiant n'est rouge que s'il a été précédemment( !) défini et non annulé.

 

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

Je peux voir que c'est une macro. Dans ce cas, vous n'avez pas besoin de voir #define laterally.

L'inconvénient est clair : il est impossible de comprendre si l'identifiant PRICEST_TICK_PRICE a été défini précédemment ou non.

Je n'ai jamais essayé de le déterminer par la couleur. De plus, si tout est dans #ifdef, MQL4 et MQL5 peuvent avoir des couleurs différentes. Le plus simple est de faire ALT+G sur le nom de la macro pour voir si elle est là ou pas.

Règle pratique : un identifiant n'est rouge que s'il a été défini auparavant ( !).

Je serais à l'aise si la macro est mentionnée au moins une fois quelque part dans #define, #ifdef, #undef, etc. Même si elle n'est pas définie.

 
Vladimir Pastushak:

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

Dans tous les cas, il renvoie true s'il y a un fichier ou non, et error 5019 s'il n'y a pas de fichier. Selon l'aide, il devrait retourner false s'il n'y a pas de fichier.

bool file_exists=FileIsExist(FileName) ; Fonctionne correctement

Veuillez choisir la variante de la fonction que vous souhaitez utiliser - https://www.mql5.com/ru/docs/files/filegetinteger.


Документация по MQL5: Файловые операции / FileGetInteger
Документация по MQL5: Файловые операции / FileGetInteger
  • www.mql5.com
[in]  Идентификатор свойства файла. Значение может быть одним из значений перечисления ENUM_FILE_PROPERTY_INTEGER. Если используется второй вариант функции, то можно получать значения только следующих свойств: [in]  Указывает на местоположение файла. Если параметр равен false, то просматривается каталог данных терминала, в противном случае...