La funzione StrToTime causa l'errore 4051 - pagina 2

 
qjol:
ma devi usare il formato "yyyy.mm.dd hh:mm" altrimenti ottieni l'errore 4051
OK, hai ragione, o l'aiuto in MetaEditor è sbagliato o c'è un bug, in entrambi i casi deve essere segnalato al Service Desk lo segnalerò . . . e il russo nell'aiuto inglese.
Riferimento MQL4 / Funzioni di conversione / StrToTime

StrToTime

Converte la stringa nel formato "yyyy.mm.dd hh:mi" nel tipo datetime (la quantità di secondi che sono passati dal 1 gennaio 1970).

datetime StrToTime(
stringa value // stringa
);

Parametri

valore

[Строка в формате "yyyy.mm.dd hh:mi ".

Valore restituito

Valore di tipo datetime come numero di secondi, passato dal 01.01.1970.

Esempio:

datetime var1,var2,var3;
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // restituisce la data corrente con l'ora data
var3=StrToTime("2003.8.12"); // restituisce la data con l'ora di mezzanotte "00:00"


 
RaptorUK:
OK, hai ragione, o l'aiuto in MetaEditor è sbagliato o c'è un bug, in entrambi i casi deve essere segnalato al Service Desk lo segnalerò . . . . e il russo nell'aiuto inglese.

Questo funzionerà come workaround dando lo stesso risultato. . .

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

. . . e nessun errore.

 
RaptorUK:

. e nessun errore.


naturalmente, è il formato giusto
 

di cosa stai parlando?

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

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

quindi cosa c'è di sbagliato?

 
graziani:

di cosa stai parlando?

quindi cosa c'è di sbagliato?

StrToTime() non StringToTime()
 
graziani:

di cosa stai parlando?

quindi cosa c'è di sbagliato?


aggiungete GetLastError() e lo scoprirete
 
RaptorUK:
StrToTime() non StringToTime()


non importa, entrambi danno errore 4051
 

GetLastError() dà la descrizione dell'errore solo se è successo e solo se la funzione sta usando un gestore di errori.

Questo non è il caso qui, quindi usarlo non ha senso.

Str vs. String, dovreste usare le nuove funzioni perché sono le stesse di MQL5, per avere la compatibilità con la fonte.

Inoltre, se il risultato è come documentato, perché insisti sull'errore?

 
graziani:

GetLastError() dà la descrizione dell'errore solo se è successo e solo se la funzione sta usando un gestore di errori.

Questo non è il caso qui, quindi usarlo non ha senso.

Str vs. String, dovreste usare le nuove funzioni perché sono le stesse di MQL5, per avere la compatibilità con la fonte.

Inoltre, se il risultato è come documentato, perché insisti sull'errore?

ResetLastError() prima della chiamata StrToTime() e poi chiamate GetLastError() dopo. . . StrToTime() non dovrebbe causare un errore ma lo fa . . . è un bug. Qualcosa di simile è già stato riconosciuto e risolto: https://www.mql5.com/en/forum/149475/page2
 
graziani:


Str vs. String, dovreste usare le nuove funzioni in quanto sono le stesse di MQL5, per avere la compatibilità alla fonte.

Perché dovrei volere la compatibilità con mql5? Sto usando il codice mql4 per MT4.