Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#22

AW: [D5] Dateidatum wird falsch gelesen

  Alt 17. Apr 2015, 23:55
Bjoerk und BadenPower

Ich könnte beschwören bei einigen gecrashten Festplatten, Disketten und Sonstigem eine 7 als Dekadenwert gesehen zu haben. Ob es eine 70 oder 7x gewesen ist, weiß ich nicht, aber ich kann mich gut dran erinnern. Auf der anderen Seite hatte ich mich nie genauer damit auseinander gesetzt, somit will ich nichts genau behaupten. Man sollte aber bedenken, das man das Jahr der PC Geburt auf 1976/77 beziffert. Andererseits kam das was man heute allgemein als PC ansieht, wobei es eigentlich nur der IBM-PC kompatible PC ist, 1981 raus. Trotzdem, unsere PCs sind nur die verbesserten Nachbauten des damaligen IBM-PCs. Damit ist anzunehmen, dass Microsoft bei seinem MS-DOS, was eigentlich das 1980 fertiggestellte QDOS von Tim Paterson ist, die Zeitrechnung auf 1980 gesetzt hat. Wobei eigentlich anzunehmen ist, dass das BIOS das Datum liefern sollte. Letztendlich, ich weiß es nicht. Man sollte aber bedenken, dass andere Systeme (vor allem über FTP) durchaus andere Startzeiten haben und vielleicht berücksichtigen einige Programme dies.

Aber wo wir dabei sind, hier der Quellcode der Funktion FileDateToDateTime:
Delphi-Quellcode:
function FileDateToDateTime(FileDate: Integer): TDateTime;
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);
end;
Da wird frech 1980 dazu gezählt.


obwohl es ja laut Popov gar nicht möglich ein sollte, ein solches Datum überhaupt erst zu erzeugen bzw. einer Datei zuzuweisen.
Es gibt meiner Kenntnis nach insgesamt 4 Quellen für ein Datum. Das gewöhnliche Time, sowie drei bei TWin32FindData. Time ist Typ Integer, die drei Zeiten bei TWin32FindData sind Longword. Time ist alt, TWin32FindData ist neuer. Vielleicht wird da was anders gespeichert.
  Mit Zitat antworten Zitat