Einzelnen Beitrag anzeigen

ils566

Registriert seit: 3. Dez 2005
28 Beiträge
 
#1

FileDateToDateTime ist ungenau

  Alt 10. Jan 2007, 13:30
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]
  Mit Zitat antworten Zitat