AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWin32FindData.TFileTime nach TDateTime?

Ein Thema von Sharky · begonnen am 29. Sep 2002 · letzter Beitrag vom 1. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#1

TWin32FindData.TFileTime nach TDateTime?

  Alt 29. Sep 2002, 09:24
Hai ihr alle,

wie kann ich denn TFileTime von TWin32FindData in ein TDateTime wandeln?

Ich möchte mir für alle Dateien auf der HD die drei relevaten Datumswerte anzeigen lassen.

Gruss


Edit durch mich selber


Jetzt habe ich die deklaration im PSDK gefunden.

So geht es dann:

Code:
function FileTimeToDateTime (filetime : TFileTime): TDateTime;
var
 systime : TSystemTime;
 datetime : TDateTime;
begin
 FileTimeToSystemTime (filetime,systime);
 datetime := EncodeDate (systime.wYear,systime.wMonth,systime.wDay);
 datetime := datetime + EncodeTime (systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds);
 result := datetime;
end;
P.S.: Wie kann ich denn jetzt eigentlich den Code Formatiert im Forum darstellen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 29. Sep 2002, 10:22
Hai,

ich habe das ganze etwas geändert und vorallem die Abweichung zur UTC
berücksichtigt. Eventuell hat ja jemand das schon gesucht

Code:
[b]uses[/b]
 IdGlobal;

[b]function[/b] FileTimeToDate (filetime : TFileTime): TDate;
[b]var[/b]
 systime : TSystemTime;
[b]begin[/b]
 FileTimeToSystemTime (filetime,systime);
 result := EncodeDate (systime.wYear,systime.wMonth,systime.wDay);
[b]end[/b];

[i]{****************************************************}[/i]

[b]function[/b] FileTimeToTime (filetime : TFileTime): TTime;
[b]var[/b]
 systime : TSystemTime;
[b]begin[/b]
 FileTimeToSystemTime (filetime,systime);
 result := OffsetFromUTC + EncodeTime (systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds);
[b]end[/b];

[i]{****************************************************}[/i]

[b]function[/b] FileTimeToDateTime (filetime : TFileTime): TDateTime;
[b]begin[/b]
 result := FileTimeToDate (filetime) + FileTimeToTime (filetime);
[b]end[/b];
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#3
  Alt 29. Sep 2002, 10:51
Erklärt mir mal einer was UTC ist?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 29. Sep 2002, 11:22
Zitat von theomega:
Erklärt mir mal einer was UTC ist?
UTC = coordinated universal time

das ist der "Nachfolger" vom GMT (Greenwich Mean Time).

Sprich: UTC = GMT = Uhrzeit in Greewich (bei London) = Uhrzeit beim Null-Meridian = Weltzeit
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#5
  Alt 29. Sep 2002, 11:28
gut, danke.
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#6
  Alt 29. Sep 2002, 11:36
Aus dem PSDK:
Zitat:
System time is the current date and time of day. The system keeps time so that your applications have ready access to accurate time. The system bases system time on coordinated universal time (UTC). UTC-based time is loosely defined as the current date and time of day in Greenwich, England.
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#7
  Alt 29. Sep 2002, 11:40
bischen spät, aber trotzdem danke Roman.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 29. Sep 2002, 12:14
Moin Sharky,

aber denk' dran:
Wenn Du eine korrekte LastAccessTime haben willst, musst Du die, wohl oder übel mittels GetFileAttributesEx auslesen.
Machst Du das, z.B. mit FindFirst/FindNext und TSearchRec, so ist der Zeitpunkt des letzten Zugriffes der, an dem TSearchRec gefüllt wurde.
Ist so ähnlich, als würdest Du Dir die Eigentschaften über das Kontextmenü im Explorer ansehen. Da ist das Datum des letzten Zugriffes auch der Moment, in dem Du Dir die Eigenschaften anzeigen lässt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 29. Sep 2002, 14:40
Hai Christian,

danke für die Info. Das wuste ich nicht! Naja, aber da ich die Werte ja unmitelbar nach dem Find... abfrage reicht mir das.

Es geht in dem Programm darum zu ermitteln welche Dateien seit einem freiwählbarem Zeitraum nicht mehr benutzt wurden um mit einem Ausdruck dieser Liste den Usern im Netzwerk unter der Nase herum zu wedeln und sie darum zu "bitten" die Verzeichnisse auf dem Server mal wieder aufzuräumen
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 29. Sep 2002, 14:48
Moin Sharky,

wenn ich das jetzt richtig verstanden habe, brauchst Du das also, um den Zeitpunkt des letzten Zugriffes zu ermitteln?
Und genau das geht mit FindFirst... schief.

Oder hab' ich Dich jetzt falsch verstanden?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:42 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