関数 StrToTime がエラー 4051 を引き起こす - ページ 2

 
qjol:
ただし、「yyyy.mm.dd hh:mm」形式でないと、エラー4051が発生します。
MetaEditorのヘルプが間違っているか、バグがあるか、いずれにしてもサービスデスクに 報告する必要があります。
MQL4リファレンス / 変換関数 / StrToTime

StrToTime

yyyy.mm.dd hh:mi "の書式の文字列をdatetime型(1970年1月1日からの経過秒数)に変換します。

datetime StrToTime(
string value // string
);

パラメータ

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

返される値

1970年1月1日からの経過秒数としてのdatetime 型の値。

datetime var1,var2,var3;
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // 現在の日付と与えられた時刻を返す
var3=StrToTime("2003.8.12"); // 真夜中の時刻 "00:00 " を含む日付を返します。


 
RaptorUK:
OK、あなたは正しいです、MetaEditorのヘルプが間違っているか、バグがあります、どちらにしてもサービスデスクに 報告する必要があります、私は それを報告します ... そして英語のヘルプのロシア語。

これは、同じ結果を与える回避策として機能します。

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

エラーは出ません。

 
RaptorUK:

.そしてエラーはない。


もちろん、正しいフォーマットです
 

何言ってるんだ

   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

で、何がいけないの?

 
graziani:

何言ってるんだ

あげる

で、何がいけないの?

StrToTime()ではなく、StringToTime()です。
 
graziani:

何言ってるんだ

あげる

で、何がいけないの?


GetLastError()を追加 すれば、それがわかります。
 
RaptorUK:
StrToTime() は StringToTime() ではありません。


は関係なく、どちらもエラー4051を出します。
 

GetLastError() は、エラーが発生した場合のみ、また、その関数が エラーハンドラを使用している場合のみ、エラーの説明を提供します。

この場合、エラーハンドラを使用していないため、この関数を使用する意味はありません。

StrとStringの比較ですが、ソースの互換性を保つために、MQL5と同じように新しい関数を使用するべきです。

また、ドキュメント通りの結果であれば、なぜエラーにこだわるのでしょうか?

 
graziani:

GetLastError() は、エラーが発生した場合のみ、また、その関数がエラーハンドラを使用している場合のみ、エラーの説明を提供します。

この場合、エラーハンドラを使用していないため、この関数を使用する意味はありません。

StrとStringの比較ですが、ソースの互換性を保つために、MQL5と同じように新しい関数を使用するべきです。

また、ドキュメント通りの結果であれば、なぜエラーにこだわるのでしょうか?

StrToTime() 呼び出しの 前に ResetLastError() を行い、その後 GetLastError() を呼び出します。 StrToTime()はエラーを発生させないはずですが、発生してしまいます ... ... それは、バグです。 似たようなことはすでに認識され、修正 されています: https://www.mql5.com/en/forum/149475/page2
 
graziani:


StrとStringの比較では、ソースの互換性を保つために、MQL5と同じ新しい関数を使用する必要があります。

なぜ、MQL5との互換性が必要なのですか? 私はMT4でmql4のコードを使っています。