Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1444

 

Hallo, Aleksandr Slavskii.

Befindet sich der russische Buchstabe M zufällig in einer der Zeilen?

 
Aleksandr Slavskii #:

Was könnte falsch sein?

Set - die Zeichenfolge, in der wir suchen.

txt - das, wonach wir suchen.

warum aaa = -1 ???

Hallo Alexander, vielleicht hättest du den Datentyp auf string statt auf int setzen sollen? Du suchst nach Text, nicht nach einer Zahl.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin #:

Hallo Alexander, vielleicht hätte der Datentyp auf string statt auf int gesetzt werden sollen? Ich denke, Sie suchen nach Text, nicht nach einer Zahl.

Mit freundlichen Grüßen, Vladimir.

Auf dem Bild kannst du sehen, dass die Funktion StringFind Daten vom Typ String zurückgibt, vom Typ int , nämlich die Nummer der Position, an der die gesuchte Zeichenfolge beginnt.

In diesem Fall hätte die Funktion Null zurückgeben müssen.

 
Aleksandr Slavskii #:

Was könnte falsch sein?

Set - die Zeichenfolge, in der wir suchen.

txt - das, wonach wir suchen.

warum aaa = -1 ???

Und warum hat der Debugger 7 Zeichen in txt gezählt, obwohl es 6 sein sollten? Und in Set sollten es 26 sein.

 
Aleksandr Slavskii #:

Die Abbildung zeigt, dass die Funktion StringFind Daten vom Typ String zurückgibt, die vom Typ int sind, nämlich die Nummer der Position, an der die gesuchte Zeichenfolge beginnt.

In diesem Fall hätte die Funktion Null zurückgeben müssen.

Ich verstehe. Vielen Dank für die Klarstellung. Jetzt habe ich eine neue Funktion für mich kennengelernt.

Mit freundlichen Grüßen, Vladimir.

 
Alexey Viktorov #:

Warum zählt der Debugger 7 Zeichen in txt, wenn es 6 sein sollten? Und in Set, wo es 26 sein sollten

Ja, ja, und das ist auch seltsam, danke, was hier falsch ist, begann ich die Frage Yuriy Bykov zu überprüfen, ich aus dem Debugger kopiert und in den Code eingefügt, bekam ich dieses Bild.

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

Ich habe die Silbentrennung in eine andere Zeile von irgendwoher.

Ich danke Ihnen allen für Ihre Hilfe. Ich werde es mir ansehen.

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

Kann die gelbe Markierung nicht diese Wirkung haben? Ich kläre das zum Zwecke des Selbststudiums.

StringFind

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

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

Параметры

string_value

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

match_substring

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

start_pos=0

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

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

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

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin #:

Kann die gelbe Markierung nicht diese Wirkung haben? Nur zur Klarstellung für das Selbststudium.

Mit freundlichen Grüßen, Vladimir.

int start_pos=0 Standardwert

Wenn Sie ihn bei der Übergabe an eine Funktion nicht angeben, wird er durch Null ersetzt.

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

Das ist dasselbe.

 
Aleksandr Slavskii #:

int start_pos=0 Standardwert

Wird er bei der Übergabe an die Funktion nicht angegeben, wird er durch Null ersetzt.

Das ist dasselbe.

Ich verstehe, Alexander. Jetzt werde ich es wissen.

Mit freundlichen Grüßen, Vladimir.

 
Evgeny Dyuka #:

Ist es möglich, die Ausgabe von Datenbankverbindungsfehlern abzubrechen?
Zum Beispiel gibt die Funktion DatabaseOpen() jedes Mal einen Fehler aus, wenn die Datenbank gesperrt ist und die Funktion nicht auf sie zugreifen kann.
Aber das ist eine normale Arbeitssituation für mich und dieses Problem wird bearbeitet und gelöst und wenn nötig, werde ich diesen Fehler selbst abfangen und ausgeben.

Infolgedessen ist das gesamte Protokoll voll von Meldungen über die gesperrte Datenbank.

Beantworten Sie die Frage, bitte
Grund der Beschwerde: