Die Funktion StrToTime verursacht den Fehler 4051 - Seite 2

 
qjol:
aber Sie müssen das Format "yyyy.mm.dd hh:mm" verwenden, sonst erhalten Sie den Fehler 4051
OK, Sie haben recht, entweder ist die Hilfe im MetaEditor falsch oder es gibt einen Fehler, so oder so muss es dem Service Desk gemeldet werden... und das Russische in der englischen Hilfe.
MQL4 Referenz / Konvertierungsfunktionen / StrToTime

StrToTime

Konvertiert String im Format "yyyy.mm.dd hh:mi" in den Typ datetime (die Anzahl der Sekunden, die seit dem 1. Januar 1970 vergangen sind).

datetime StrToTime(
string wert // string
);

Parameter

Wert

[in] Строка в формате "jjjj.mm.tt hh:mi ".

Zurückgegebener Wert

Wert vom Typ datetime als Anzahl der Sekunden, gerechnet ab dem 01.01.1970.

Beispiel:

datetime var1,var2,var3;
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // liefert das aktuelle Datum mit der angegebenen Uhrzeit
var3=StrToTime("2003.8.12") ; // gibt das Datum mit der Mitternachtszeit von "00:00" zurück


 
RaptorUK:
OK, Sie haben recht, entweder ist die Hilfe im MetaEditor falsch oder es gibt einen Fehler, so oder so muss es dem Service Desk gemeldet werden... und das Russische in der englischen Hilfe.

Dies funktioniert als Abhilfe und führt zum gleichen Ergebnis . . .

  datetime xxxxx = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+"21:45");

. und keinen Fehler.

 
RaptorUK:

. und kein Fehler.


Natürlich ist es das richtige Format
 

Wovon reden Sie?

   Print((string)StringToTime("21:45"));
   datetime test = StringToTime("21:45");
   Print((string)test);
   Print(TimeToString(test, TIME_MINUTES));

gibt

00:01:00 Test GOLD,M15: 2014.02.12 21:45:00
00:01:00 Test GOLD,M15: 2014.02.12 21:45:00
00:01:00 Test GOLD,M15: 21:45

Was ist also falsch?

 
graziani:

Wovon reden Sie?

gibt

Was ist also falsch?

StrToTime() nicht StringToTime()
 
graziani:

Wovon reden Sie?

gibt

Was ist also falsch?


fügen Sie GetLastError() hinzu und Sie werden es herausfinden
 
RaptorUK:
StrToTime() nicht StringToTime()


spielt keine Rolle, beide geben Fehler 4051
 

GetLastError() gibt nur dann eine Fehlerbeschreibung aus, wenn der Fehler aufgetreten ist und die Funktion einen Error-Handler verwendet.

Das ist hier nicht der Fall, also hat die Verwendung keinen Sinn.

Str vs. String, Sie sollten die neuen Funktionen verwenden, da sie die gleichen sind wie in MQL5, um Quellkompatibilität zu haben.

Auch wenn die Ergebnisse wie dokumentiert sind, warum bestehen Sie auf Fehler?

 
graziani:

GetLastError() gibt nur dann eine Fehlerbeschreibung aus, wenn der Fehler aufgetreten ist und die Funktion einen Error-Handler verwendet.

Das ist hier nicht der Fall, also hat die Verwendung keinen Sinn.

Str vs. String, Sie sollten die neuen Funktionen verwenden, da sie die gleichen sind wie in MQL5, um Quellkompatibilität zu haben.

Auch wenn die Ergebnisse wie dokumentiert sind, warum bestehen Sie auf Fehler?

ResetLastError() vor dem Aufruf von StrToTime() und danach GetLastError() aufrufen . . . StrToTime() sollte keinen Fehler verursachen, tut es aber... es ist ein Fehler. Etwas Ähnliches wurde bereits bestätigt und behoben: https://www.mql5.com/en/forum/149475/page2
 
graziani:


Str vs. String, sollten Sie die neuen Funktionen verwenden, da sie die gleichen sind wie in MQL5, um Quellkompatibilität zu haben.

Warum sollte ich Kompatibilität mit mql5 wollen? Ich benutze mql4 Code für MT4.