Fehler, Irrtümer, Fragen - Seite 3021
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Der Fehler ist die Diskrepanz zwischen den beiden Funktionen, nicht das Ergebnis, denn es ist nur eine Frage der Dokumentation, was bei count=0 ausgegeben werden soll.
Nein, es gibt auch so etwas wie ein Einheitlichkeitsprinzip. Der Fehler ist offensichtlich. Wenn Sie nicht verstehen, warum es ein Fehler ist, ist das Ihr Problem.
Der Fehler liegt in der Diskrepanz zwischen den beiden Funktionen, nicht in ihrem Ergebnis, da es nur eine Frage der Dokumentation ist , was bei count=0 ausgegeben werden soll.
Forum zum Thema Handel, automatische Handelssysteme und Strategietests
Fehler, Irrtümer, Fragen
Roman, 2021.05.07 22:07
Der ganze Trick steht in der Funktionsbeschreibung ))
automatischer Fortschritt ))
was den Benutzer mehr verwirrt.
Und wie würde ein Praktiker ein solch widersprüchliches Ergebnis den Theoretikern erklären?
Ergebnis: 4:0
Erwartetes Ergebnis: 0:0
Oder auch - um die Dokumentation ein wenig zu korrigieren? Also doch nicht, um Fehler zu beheben!
Meine Erklärung ist einfach: eine dieser Standardfunktionen hat einen Fehler - und ich weiß sogar welche
Danach haben die Entwickler bereitskorrigiert, so dass Ihre vorherige Erklärung nicht mehr gültig ist.
Die Funktionen sind die gleichen (sie unterscheiden sich nur im Typ, nämlich der Vorlage), die Beschreibung ist die gleiche (es gibt sogar Querverweise), aber das Ergebnis ist anders
Die Entwickler haben das Problem bereits behoben, so dass Ihre vorherige Erklärung nicht zutrifft.
Was genau wurde behoben?
![str1 str1](https://c.mql5.com/3/356/str.PNG)
Das war schon immer so, wie es in der Dokumentation steht.
Haben Sie überprüft, was behoben wurde? ))
Behoben, wie gewünscht aufgeteilt.
3 Zeichen, zum Beispiel.
Wenn Sie jedoch 0 in count übergeben, wird automatisch die gesamte Zeichenkette mit einer endenden Null kopiert.
Und StringLen() gibt keine abschließende Null zurück ))Auch wenn die Zeichenkette leer ist, wird eine endende Null kopiert.
Was genau haben Sie repariert?
Wenn Sie jedoch 0 an count übergeben, wird automatisch die gesamte Zeichenkette mit einer endenden Null kopiert.
Auch wenn die Zeichenkette leer ist, wird die endende Null kopiert.
Warum ist es inStringToShortArray anders? Bitte erklären Sie kurz und knapp, wenn möglich, ohne Tricks und obskure Verweise auf Ihre früheren brillanten Erklärungen (die am Ende gescheitert sind) - in einfachen Worten - für einen Dummkopf
ohne ; ) und andere unpassende Symbole in diesem Thema.
Warum ist es inStringToShortArray anders? Bitte erklären Sie kurz, wenn möglich, ohne Tricks und unverständliche Verweise auf Ihre früheren brillanten Erklärungen (die am Ende gescheitert sind) - in einfachen Worten - für einen Dummkopf
ohne ; ) und andere irrelevante Symbole in diesem Thema.
Geteilte Arbeiten
Ich weiß nicht, warum der Zähler 0 nicht funktioniert.
Vielleicht funktioniert diese intelligente Automatik bei Zählung 0 hier nicht, und laut der Hilfe ist es bereits eine Fehlanpassung.
Und das muss ein Fehler sein.
Wie auch immer, entweder gibt es einen Fehler hier, dienicht aufZählung 0funktioniert,
oder es gibt einen Fehler in StringToCharArray, die aufZählung 0 funktioniert.
Damit Sie die Richtigkeit der Erklärungen verstehen, sollten Sie die Grundlagen der Sprache C studieren, insbesondere den Umgang mit Zeichenketten.
Dann wird es keine Fragen geben.
Kurz gesagt, entweder gibt es einen Fehler hier, dass count 0 nicht funktioniert,
oder es gibt einen Fehler in StringToCharArray, dass count 0 funktioniert.
Hervorragend!
Hervorragend!
Aber wenn man den Kopf dreht, ist die Übergabe einer Größe von Null an das Array und die Zuweisung von Null Speicher für dieses Array gelinde gesagt seltsam.
Deshalb wird beiZählung 0 automatisch eine Größenänderung bis zum Ende der Zeichenkette vorgenommen.
Nach der Logik sollte es auch in StringToShortArray funktionieren.
Die Fehlermeldung wäre ohne Größenanpassung besser ausgefallen.
Natürlich ist das genial. In der Hilfe wird nicht explizit auf die Behandlung vonCount 0 hingewiesen.
Aber wenn man den Kopf dreht, ist die Übergabe einer Array-Größe von Null und die Zuweisung von Null-Speicher für dieses Array gelinde gesagt seltsam.
Deshalb wird bei Zählung 0 automatisch eine Größenänderung bis zum Ende der Zeichenkette vorgenommen.
Nach der Logik sollte es auch in StringToShortArray funktionieren.
Sie sollten besser einen Fehler ohne Größenänderung zurückgeben.
Und in
CharArrayToString
Warum nicht gleich bis zum Ende?
Ergebnis: ""
Und in
Warum nicht gleich bis zum Ende?
Ergebnis: ""
Wahrscheinlich, weil es inCharArrayToString kein dynamisches Array [out] gibt.
Und der Entwickler entschied, dass dies unnötig sei.
Obwohl unterschiedliche Logik in ähnlichen Funktionen mehr Verwirrung stiftet.