AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [D5] Dateidatum wird falsch gelesen
Thema durchsuchen
Ansicht
Themen-Optionen

[D5] Dateidatum wird falsch gelesen

Ein Thema von JanWe · begonnen am 16. Apr 2015 · letzter Beitrag vom 18. Apr 2015
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: [D5] Dateidatum wird falsch gelesen

  Alt 17. Apr 2015, 23:09
NTFS hat einen grösseren Datumsbereich als Fat. Und mit den richtigen Api bekommt man die auch zu gesicht
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
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
Popov
(Gast)

n/a Beiträge
 
#23

AW: [D5] Dateidatum wird falsch gelesen

  Alt 18. Apr 2015, 01:03
Bevor ich nicht schlafen kann, habe ich schnell noch etwas geprogr und bei einer Datei bei FindData (TWin32FindData) die Zeiten auf 0 gesetzt. Rausgekommen ist 1617.

Aber wie gesagt, das sin die Zeiten die in FindData gespeichert sind, nicht die von Time.
Miniaturansicht angehängter Grafiken
1617.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#24

AW: [D5] Dateidatum wird falsch gelesen

  Alt 18. Apr 2015, 10:22
Es gibt Programme, die Prüfen ein Datum auf Gültigkeit und zeigen dann offensichtlich unglütige Datumwerte nicht an.

z.B. gibt Delphi-FindFirst bei 29.03.2015 02:01 eine Fehlermeldung aus, da es erkennt, daß es diese Zeit eigentlich nicht geben kann.
Nachweisbar an zwei meiner Dateien, denn der Rechner hatte die Sommerzeit nicht rechtzeitig umgestellt.
Der Fehler tritt dort auf, weil Delphi die Zeit auf LocalTime umrechnen will und mit dieser Uhrzeit ein kleines Problemchen hat.

So, und jetzt zeig mir mal bitte jemand einen Computer aus dem Jahre 1617.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#25

AW: [D5] Dateidatum wird falsch gelesen

  Alt 18. Apr 2015, 11:49
So, und jetzt zeig mir mal bitte jemand einen Computer aus dem Jahre 1617.
Aber gerne doch: Helpdesk .

MfG Dalai
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#26

AW: [D5] Dateidatum wird falsch gelesen

  Alt 18. Apr 2015, 12:21
So, und jetzt zeig mir mal bitte jemand einen Computer aus dem Jahre 1617.
http://mathe-abakus.fraedrich.de/abakus/lr/poster02.jpg
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#27

AW: [D5] Dateidatum wird falsch gelesen

  Alt 18. Apr 2015, 13:03
Aber selbst wenn du vom Abakus Dateien auf dem PC kopierst, wirst du kein Dateidatum bekommen welcdhes vor dem Kopiervorgang liegt. Das Erstelldatum ist das Datum wann die Datei auf dem Zielrechner erstellt wurde.

Was anderes sind Daten in Anwendung. Dort können natürlich Daten vor 1980 vorkommen. Stichwort Ahnenforschung.

Und zum Speichern: Natürlich als Integer bzw. Timestamp. Dann kannst du zum Anzeigen das Datum immer passend formatieren. Speicherst du es als String, musst du jedes mal den String parsen, je nachdem wie du es angezeigt haben willst. Stichwort Lokalisierung und verschieden Datumsformate.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz