初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1444

 

你好,亚历山大-斯拉夫斯基

俄文字母 M 是否恰好出现在其中一行?

 
Aleksandr Slavskii #:

可能出现的问题

Set - 我们要搜索的字符串。

txt - 我们要查找的内容。

为什么 aaa = -1 ?

你好,亚历山大!也许你应该把数据类型设置为字符串而不是 int?您要找的是文本,而不是数字。

再见,弗拉基米尔。

 
MrBrooklin #:

你好,亚历山大!也许数据类型应该设置为字符串而不是 int?我认为您要找的是文本,而不是数字。

再见,弗拉基米尔。

从图中可以看到,StringFind函数返回 的数据类型是字符串,而不是int 类型 ,即搜索字符串的起始位置数。

在这种情况下,函数应该返回 0。

 
Aleksandr Slavskii #:

可能出现的问题

Set - 我们要搜索的字符串。

txt - 我们要查找的内容。

为什么 aaa = -1 ?

为什么调试器计算出 txt 中有 7 个字符,而实际上应该是 6 个?而 Set 中应该是 26 个字符。

 
Aleksandr Slavskii #:

从图中可以看出,StringFind函数返回 的数据是字符串 类型,int 类型 ,即搜索到的字符串的起始位置数。

在这种情况下,函数本应返回 0。

我明白了。谢谢你的解释。现在我又学到了一个新函数。

再见,弗拉基米尔。

 
Alexey Viktorov #:

为什么调试器在 txt 中计算了 7 个字符,而实际上应该是 6 个?而在 Set 中应该是 26 个字符

是的,是的,这也很奇怪,谢谢,这里出了什么问题?我开始检查Yuriy Bykov 的问题,我从调试器中复制并粘贴到代码中,得到了这张图。

 "
 RiskMM" (length: 7)        
 "RiskMM=0.3/0.3/0.3/0.3/0.3" (length: 26)

我从 某个地方 把连字符转到了另一行。

谢谢大家的帮助。我会仔细研究的。

Yuriy Bykov
Yuriy Bykov
  • 2023.01.13
  • www.mql5.com
Профиль трейдера
 

难道用黄色标出的内容不能产生这种效果吗?我是为了自学的目的而说明的。

StringFind

Поиск подстроки в строке.

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

Параметры

string_value

[in]  Строка, в которой производится поиск.

match_substring

[in]  Искомая подстрока.

start_pos=0

[in]  Позиция в строке, с которой должен быть начат поиск.

Возвращаемое значение

Возвращает номер позиции в строке, с которой начинается искомая подстрока, либо -1, если подстрока не найдена.

弗拉基米尔

 
MrBrooklin #:

难道用黄色突出显示不能产生这种效果吗?我只是想澄清一下,以便自学。

弗拉基米尔

int start_pos=0默认值

如果您在将其传递给函数时没有指定,将以 0 代替。

StringFind(Set, txt);
StringFind(Set, txt, 0);

这一点是相同的。

 
Aleksandr Slavskii #:

int start_pos=0默认值

如果在传递给函数时没有指定,将替换为 0。

这一点相同。

我明白了,亚历山大。现在我知道了。

再见,弗拉基米尔

 
Evgeny Dyuka #:



例如,DatabaseOpen() 函数每次在数据库被锁定且函数无法访问数据库时都会打印错误信息。但这对我来说是正常的工作情况,这个问题已经得到处理和解决,如果有必要,我会自己捕获并输出这个错误信息。

因此,整个日志中都是关于锁定数据库的信息。

请回答问题