Função StrToTime causa erro 4051 - página 2

 
qjol:
mas u tem que usar o formato "yyyy.mm.dd hh:mm" caso contrário u recebe erro 4051
OK, você está correto, ou a ajuda no MetaEditor está errada ou há um bug, de qualquer forma ele precisa ser reportado ao Service Desk I' ll report it . . . e o russo na ajuda inglesa.
Referência MQL4 / Funções de Conversão / StrToTime

StrToTime

Converte o fio no formato "yyyy.mm.dd hh:mi" para o tipo datetime (a quantidade de segundos que passaram desde 1 de janeiro de 1970).

data/hora StrToTime(
string valor // string
);

Parâmetros

valor

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

Valor retornado

Valor do tipo de tempo como um número de segundos, passado desde 01.01.1970.

Exemplo:

data/hora var1,var2,var3;
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // retorna a data atual com a hora dada
var3=StrToTime("2003.8.12"); // retorna a data com a meia-noite de "00:00"


 
RaptorUK:
OK, você está correto, ou a ajuda no MetaEditor está errada ou há um bug, de qualquer forma ele precisa ser reportado ao Service Desk I' ll report it . . . e o russo na ajuda inglesa.

Isto funcionará como uma alternativa para dar o mesmo resultado ...

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

. e sem erros.

 
RaptorUK:

. e sem erros.


é claro, é o formato certo
 

do que você está falando?

   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

Então, o que está errado?

 
graziani:

do que você está falando?

Então, o que está errado?

StringToTime() e não StringToTime()
 
graziani:

do que você está falando?

Então, o que está errado?


adicione GetLastError() u vai descobrir
 
RaptorUK:
StringToTime() e não StringToTime()


não importa, ambos estão dando erro 4051
 

GetLastError() dá descrição do erro somente se ele aconteceu e somente se a função estiver usando um manipulador de erros.

Este não é o caso aqui, portanto, usá-lo não tem sentido.

Str vs. String, você deve usar as novas funções como são as mesmas da MQL5, para ter compatibilidade de fonte.

Também se os resultados forem os documentados, por que você está insistindo em erro?

 
graziani:

GetLastError() dá descrição do erro somente se ele aconteceu e somente se a função estiver usando um manipulador de erros.

Este não é o caso aqui, portanto, usá-lo não tem sentido.

Str vs. String, você deve usar as novas funções como são as mesmas da MQL5, para ter compatibilidade de fonte.

Também se os resultados forem os documentados, por que você está insistindo em erro?

ResetLastError() antes da chamada StrToTime() e depois GetLastError() depois . . StrToTime() não deve causar um erro, mas sim . . . . é um bug. Algo semelhante já foi reconhecido e corrigido: https://www.mql5.com/en/forum/149475/page2
 
graziani:


Str vs. String, você deve usar as novas funções como na MQL5, para ter compatibilidade com a fonte.

Por que eu iria querer compatibilidade com o mql5 ? Estou usando o código mql4 para o MT4.