从头开始自学MQL5语言 - 页 77

 
MrBrooklin:

你好,Alexey,说实话,我不太擅长编程。这是否意味着康斯坦丁提供的代码应该被最终确定?

真诚的,弗拉基米尔。

它需要被重新加工并被扔掉。

 
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_SYMBOL_INFO_STRING,但由于某些原因,没有任何效果。不过你可以再试试。

真诚的,弗拉基米尔。

 
Valeriy Yastremskiy:

但只是比较吗?并将输入限制为小字母。或枚举,什么是傻瓜式的))))。

你也可以直接进行比较,但如果字符有后缀,你必须按原样输入。一般来说,有很多选择,争论flomasters的口味是徒劳的。

但如果你有一个枚举,在字符串中搜索 将是必要的。因为该枚举包含纯符号名称,而图表可以包含任何附件。

 
Alexey Viktorov:

为什么要对一个不成熟的头脑进行这样的嘲弄呢?你的代码根本不符合要求。如果在输入参数中只输入了 "eu "或 "eur",这部分条件

无论哪种货币对在其名称中包含 "EU",都将得到满足,而欧元作为基础货币 或报价货币 并不重要。而且,为什么要翻阅MarketWatch的 SymbolName来寻找正确的符号?

阿列克谢,这是很正常的代码。这不正常,你必须在一个参数中输入几个符号,这不太可能有人做到

我的工作成果中也有大致相同的实现。

这个实施方案成功地在多币种解决方案中工作,这是对其他代码不能说的,即这个代码是通用的。

 
Alexey Viktorov:

你也可以直接比较,但如果字符有后缀,你必须按原样输入。总的来说,有相当多的选择,争论flomasters的口味是一件徒劳的事情。

但如果你有一个枚举,在字符串中搜索 将是必要的。枚举用于存储纯符号的名称,而图表可以包含任何附件。

阿列克谢,谢谢你用黑体字提供的提示。为了兴趣,我将尝试重做我之前写的第一个版本的代码。

问候,弗拉基米尔。