MQL5言語をゼロから独学で学ぶ - ページ 77

 
MrBrooklin:

アレクセイさん、こんにちは。正直なところ、私はプログラミングがあまり得意ではありません。Konstantin氏から提供されたコードを改良すべきだということでしょうか。

敬具 ウラジミール

作り直して捨てる必要がある。

 
Alexey Viktorov:

作り直して捨てる必要がある。

なぜそんなに残酷なんだ!?

アレクセイありがとうございます!!!あなたのコードは完全に動作します。

ウラジミールさん、ありがとうございます。

 

Alexey、 StringFindは 文字列の中の部分文字列を 検索するものなので、検索についてはすべてクリアしています。

int  StringFind( 
   string  string_value,        // строка, в которой ищем 
   string  match_substring,     // что ищем 
   int     start_pos=0          // с какой позиции начинать поиск 
   );

ただひとつわからないのは、文字列の中の部分文字列を検索するときに、なぜ関数がゼロと等しいかどうかをチェックするのか、ということです。

if(StringFind(_Symbol, Symbol_Main, 0) == 0)

ウラジミールさん、ありがとうございます。

 
MrBrooklin:

Alexey、 StringFindは 文字列の中の部分文字列を 検索するものなので、検索についてはすべてクリアしています。

ただひとつわからないのは、文字列の中の部分文字列を検索するときに、なぜ関数がゼロと等しいかどうかをチェックするのか、ということです。

ウラジミールさん、ありがとうございます。


のドキュメントより

戻り値

この関数は、文字列中の、探したい部分文字列が始まる番号を返す。 部分文字列が見つからなかった場合、この関数は -1 を返す。

例:チャート記号は "GBPUSD "で始まり、どのような接尾辞が付けられても構いません。

私もちょっと急ぎすぎましたけど。例えば「GBP」とだけ入力した場合、基準通貨が「GBP」であれば、どのようなグラフでも有効になります。さらに、入力行に入力されたテキストの長さをチェックする必要があります。
 
Alexey Viktorov:

ドキュメントより

すなわち、チャートシンボルは "GBPUSD "で始まり、どのようなサフィックスが付けられていても問題ありません。

私も少し急ぎすぎましたが。例えば「GBP」とだけ入力すると、基準通貨が「GBP」であれば、どのようなチャートも有効になります。さらに、入力行のテキストの長さをチェックする必要があります。

しかし、比較するだけなら、入力は小さな文字に限定すること。)

 
Alexey Viktorov:

ドキュメントより

すなわち、チャートシンボルは "GBPUSD "で始まり、どのようなサフィックスが付けられていても問題ありません。

とはいえ、私も少し性急でした。例えば「GBP」とだけ入力すると、基準通貨が「GBP」であれば、どのチャートも有効になります。さらに、入力行のテキストの長さをチェックする必要があります。

そうなんですか!?

ウラジミールさん、ありがとうございます。

 
Valeriy Yastremskiy:

しかし、ただ比較する? と入力は小さな文字に限定する。または馬鹿のためにenum)))

ヴァレリーさん、こんにちは。最初から ENUM_SYMBOL_INFO_STRINGで 始めたが、なぜか何も動作しない。もう一回やってみてもいいんですけどね。

敬具 ウラジミール

 
Valeriy Yastremskiy:

しかし、ただ比較するだけでいいのか、入力は小さい文字に限定するのか、enumにするのか、何がフールプルーフなのか)))

また、比較するだけでも良いのですが、文字にサフィックスがある場合はそのまま入力する必要があります。一般的には、選択肢はたくさんあり、フロマスターの好みについて議論するのは無駄なことです。

しかし、enumの場合は、文字列での検索が 必要になります。なぜなら、enumは純粋なシンボル名を含み、チャートは任意の添付ファイルを含むことができるからです。

 
Alexey Viktorov:

なぜ、未熟な心をそこまで馬鹿にするのか?あなたのコードは要件を全く満たしていません。入力パラメータに "eu "または "eur "のみが入力されている場合、この部分の条件

は、どの通貨ペアがその名前に「EU」を含んでいても、また基準通貨や 引用通貨が EURであっても、満たされます。また、なぜMarketWatchの SymbolNameから正しいシンボルを探すのでしょうか?

Alexei 極めて普通のコードです。普通ではありえない、パラメータに複数の記号を 入力する必要があるのです。

私の作品でも大体同じような実装をしています。

この実装は、他のコードでは不可能な多通貨対応に成功したものであり、ユニバーサルコードと言える。

 
Alexey Viktorov:

比較するだけでもいいのですが、文字にサフィックスが付くと、そのまま入力しなければなりません。一般に、選択肢はかなり多く、フロマスターの好みを論じるのは無駄な作業である。

しかし、enumの場合は、文字列での検索が 必要になります。enumは純粋なシンボルの名前を格納するために使用され、チャートは任意の添付ファイルを格納することができます。

Alexeyさん、太字でのご指摘ありがとうございます。興味本位で先に書いたコードの一番最初のバージョンを作り直してみることにします。

ウラジミールさん、ありがとうございます。