Hallo,
ich habe festgesetellt, dass die Delphi-Funktion FileDateToDateTime() die Millisekunden bei der Umwandlung des File-Timestamp in ein TDateTime wegläßt. Dadurch entsteht das Problem, dass der Vergleich von Dateien immer um ein paar Millisekunden untschiedlich ist.
In der SysUtils.pas ist FileDateToDateTime wie folgt definiert:
Delphi-Quellcode:
function FileDateToDateTime(FileDate: Integer): TDateTime;
{$IFDEF MSWINDOWS}
begin
Result :=
EncodeDate(
LongRec(FileDate).Hi shr 9 + 1980,
LongRec(FileDate).Hi shr 5 and 15,
LongRec(FileDate).Hi and 31) +
EncodeTime(
LongRec(FileDate).Lo shr 11,
LongRec(FileDate).Lo shr 5 and 63,
LongRec(FileDate).Lo and 31 shl 1,
0); <---- hier wird Millisec Anteil einfach auf Null gesetzt.
end;
Weiß jemand, wie der Millisekunden-Anteil richtig berechnet wird? Danke.
Grüße
Ilias
[edit=sakura] [delphi]Tags Mfg, sakura[/edit]