Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1444

 

Olá, Aleksandr Slavskii.

Por acaso a letra russa M estava em uma das linhas?

 
Aleksandr Slavskii #:

O que pode estar errado

Set - a string na qual estamos pesquisando.

txt - o que estamos procurando.

por que aaa = -1 ???

Olá, Alexander! Talvez você devesse ter definido o tipo de dados como string em vez de int? Você está procurando um texto, não um número.

Atenciosamente, Vladimir.

 
MrBrooklin #:

Olá, Alexander! Talvez o tipo de dados devesse ter sido definido como string em vez de int? Acho que você está procurando um texto, não um número.

Atenciosamente, Vladimir.

Na imagem, você pode ver que a função StringFind retorna dados com o tipo string , o tipo int , ou seja, o número da posição a partir da qual a string pesquisada começa.

Nesse caso, a função deveria ter retornado zero.

 
Aleksandr Slavskii #:

O que pode estar errado

Set - a string na qual estamos pesquisando.

txt - o que estamos procurando.

por que aaa = -1 ???

E por que o depurador contou 7 caracteres em txt quando deveriam ser 6? E em Set deveria ser 26.

 
Aleksandr Slavskii #:

A figura mostra que a função StringFind retorna dados com o tipo string, o tipo int , ou seja, o número da posição a partir da qual a string pesquisada começa.

Nesse caso, a função deveria ter retornado zero.

Entendo. Obrigado pelo esclarecimento. Agora aprendi uma nova função para mim.

Saudações, Vladimir.

 
Alexey Viktorov #:

Por que o depurador contou 7 caracteres em txt se deveriam ser 6? E em Set como deveria ser 26

Sim, sim, e isso também é estranho, obrigado, o que há de errado aqui? Comecei a verificar a pergunta de Yuriy Bykov, copiei do depurador e colei no código, e obtive esta imagem.

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

Consegui a hifenização em outra linha de algum lugar.

Obrigado a todos por sua ajuda. Vou dar uma olhada nisso.

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

O destaque em amarelo não pode ter esse efeito? Estou esclarecendo para fins de estudo autônomo.

StringFind

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

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

Параметры

string_value

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

match_substring

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

start_pos=0

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

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

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

Saudações, Vladimir.

 
MrBrooklin #:

O destaque em amarelo não pode ter esse efeito? Só para esclarecer para fins de estudo autônomo.

Atenciosamente, Vladimir.

int start_pos=0 Valor padrão

Se você não o especificar ao passá-lo para uma função, zero será substituído.

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

É a mesma coisa.

 
Aleksandr Slavskii #:

int start_pos=0 Valor padrão

Se não for especificado ao passá-lo para a função, será substituído por zero.

É a mesma coisa.

Eu entendo, Alexander. Agora eu saberei.

Saudações, Vladimir.

 
Evgeny Dyuka #:

É possível cancelar a saída de erros de conexão com o banco de dados?
Por exemplo, a função DatabaseOpen() imprime um erro sempre que o banco de dados está bloqueado e a função não consegue acessá-lo.
Mas essa é uma situação normal de trabalho para mim e esse problema é processado e resolvido e, se necessário, eu mesmo capturarei e emitirei esse erro.

Como resultado, todo o registro está cheio de mensagens sobre a base bloqueada.

responda à pergunta, por favor
Razão: