AGB  ·  Datenschutz  ·  Impressum  







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

Fileage ist veraltet

Ein Thema von SaFu · begonnen am 24. Sep 2008 · letzter Beitrag vom 24. Sep 2008
Antwort Antwort
Roachford
(Gast)

n/a Beiträge
 
#1

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 11:02
Ok, dann mal ins Detail:

Die alte Funktion hat dir die TFileTime als Result zurück gegeben. Das Result (TFileTime) ist ein Fliesskommawert und somit birgt dies Probleme, weil was geschieht, wenn die Datei nicht gefunden wird? Dann wird ein definierter Rückgabewert zurück gegeben und auf den müsste der Aufrufer testen. Da wir aber alle wissen, ist ein Vergleich von Fliesskommawerten mit gewissen Problemen gebunden, die durch die Darstellung der Fliesskommazahlen im digitalen System einhergeht. Und da die wenigsten den Rückgabewert mit SameValue() vergleichen sondern lieber direkt, birgt dies eine grosse Gefahrenquelle.

Abhilfe hat CodeGear dadurch geschaffen, dass sie den Rückgabewert auf Boolean geändert haben und die FileTime als Argument zurück geben. Damit kann der Aufrufer eindeutig erkennen, ob die Dateizeit ermittelt werden konnte. Und dadurch ist die zurück gegebene Zeit auch immer nur dann gültig, wenn die Funktion true zurück gibt. Damit entfällt der Fliesskommavergleich komplett und es ist sicher geworden.

Zitat von Klaus01:
Delphi-Quellcode:
var
  Testdatum : TDateTime;

If FileDateToDateTime(FileAge(Serverpfad + SearchRec.name,TestDatum)) < (Date - 60) then
begin
  DeleteFile();
end;
Ui, ein Boolean mit einer Zeit vergleichen? Und wozu dann noch die Variable?

Hier nochmal richtig:

Delphi-Quellcode:
var
  Testdatum : TDateTime;

If FileAge(Serverpfad + SearchRec.name, TestDatum) and
   ( FileDateToDateTime(Testdatum ) < (Date - 60) ) then
begin
  DeleteFile();
end;
@DeddyH: Sorry, aber ich mach das zu gerne...
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz