エラー、バグ、質問 - ページ 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:

mt 5に搭載されました。

勉強するためのコードをPMで提供してください。

 
fxsaber:

ウェブサイトエンジンは、マクロを赤で強調表示しません。

マクロが以前に定義されていた場合のみ、赤色でハイライトされます。

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

そうでなければ、マクロが以前に定義されていないことをどうやって知ることができますか? そして、それは偶然のオーバーライドではありません。

MetaEditorでも動作することがあります。


 
A100:

色は、マクロが以前に定義されていた場合にのみ強調表示されます。

そうでなければ、マクロが以前に定義されていないことをどうやって知ることができるでしょうか?

では、何がハイライトされるマクロで、何がハイライトされないマクロなのかを定義する必要があります。

すべてのマクロがハイライトされると思っていた。どうやらルールが違うようです。

 
fxsaber:

そして、何がハイライトされたマクロで、何がハイライトされていないのかを決める必要があります。

すべてのマクロがハイライトされるのでは?どうやら、ルールが違うようです。

ハイライトは何のためにあるのか、美しさのためだけなのか、情報提供のためなのか、決める必要があると思います。今のところ、そのようなルールはありません。

一般に、識別子が既に定義されており、無防備でない場合は、色で強調表示することが望ましい

 
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 laterallyを見る必要はありません。

不便な点は、PRICEST_TICK_PRICEという 識別子が以前から定義されていたのか、そうでないのかを把握できないことです。

色で判断しようとしたことはありません。さらに、すべてを#ifdefで記述すると、MQL4とMQL5が異なる色になる可能性があります。一番簡単な方法は、マクロ名でALT+Gを行い、マクロがあるかないかを確認することです。

便利なルール: 識別子は、以前(!)に定義されていた場合のみ赤色になります。

define、#ifdef、#undefなどのどこかに一度でもマクロが記載されていれば安心ですね。たとえ定義されていなくても。