Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1444

 

Salve, Aleksandr Slavskii.

Per caso la lettera M russa si trovava in una delle righe?

 
Aleksandr Slavskii #:

Cosa potrebbe essere sbagliato

Set - la stringa in cui stiamo cercando.

txt - ciò che stiamo cercando.

perché aaa = -1?

Ciao, Alessandro! Forse avresti dovuto impostare il tipo di dati su stringa invece che su int? Stai cercando un testo, non un numero.

Saluti, Vladimir.

 
MrBrooklin #:

Ciao, Alessandro! Forse il tipo di dati doveva essere impostato su string invece che su int? Credo che tu stia cercando un testo, non un numero.

Saluti, Vladimir.

Nell'immagine si può vedere che la funzione StringFind restituisce un dato di tipo stringa , il tipo int , ovvero il numero di posizione da cui parte la stringa cercata.

In questo caso, la funzione avrebbe dovuto restituire zero.

 
Aleksandr Slavskii #:

Cosa potrebbe essere sbagliato

Set - la stringa in cui stiamo cercando.

txt - ciò che stiamo cercando.

perché aaa = -1?

E perché il debugger ha contato 7 caratteri in txt quando dovrebbero essere 6? E in Set dovrebbero essere 26.

 
Aleksandr Slavskii #:

L'immagine mostra che la funzione StringFind restituisce dati di tipo stringa, di tipo int , ovvero il numero di posizione da cui parte la stringa cercata.

In questo caso la funzione avrebbe dovuto restituire zero.

Capisco. Grazie per il chiarimento. Ora ho imparato una nuova funzione per me.

Saluti, Vladimir.

 
Alexey Viktorov #:

Perché il debugger ha contato 7 caratteri in txt se dovrebbero essere 6? E in Set dovrebbero essere 26

Sì, sì, e questo è anche strano, grazie, cosa c'è di sbagliato qui, ho iniziato a controllare la domanda Yuriy Bykov, ho copiato dal debugger e incollato nel codice, ho ottenuto questa immagine.

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

Ho ottenuto la sillabazione in un'altra riga da qualche parte.

Grazie a tutti per il vostro aiuto. Lo esaminerò.

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

L'evidenziato in giallo non può avere questo effetto? Sto facendo chiarezza a scopo di autoapprendimento.

StringFind

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

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

Параметры

string_value

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

match_substring

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

start_pos=0

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

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

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

Saluti, Vladimir.

 
MrBrooklin #:

L'evidenziato in giallo non può avere questo effetto? Solo per chiarire la questione a scopo di autoapprendimento.

Saluti, Vladimir.

int start_pos=0 Valore predefinito

Se non lo si specifica quando lo si passa a una funzione, verrà sostituito da zero.

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

È lo stesso.

 
Aleksandr Slavskii #:

int start_pos=0 Valore predefinito

Se non viene specificato quando lo si passa alla funzione, verrà sostituito da zero.

È lo stesso.

Capisco, Alessandro. Ora lo saprò.

Saluti, Vladimir.

 
Evgeny Dyuka #:

È possibile annullare l'output degli errori di connessione al database?
Per esempio, la funzione DatabaseOpen() stampa un errore ogni volta che il database è bloccato e la funzione non può accedervi.
Ma questa è una situazione di lavoro normale per me e questo problema viene elaborato e risolto e, se necessario, catturerò ed emetterò io stesso questo errore.

Di conseguenza, l'intero log è pieno di messaggi sulla base bloccata.

rispondere alla domanda, per favore