![]() |
Fileage ist veraltet
Mosche
Bekomme die Warnung "Fileage ist veraltet" hab jetzt gelesen das es neue Version von Fileage gibt. Aber ich denke das ich es richtig geschriben habe. Kann mir einer sagen wo der fehler liegt.
Delphi-Quellcode:
If FileDateToDateTime(FileAge(Serverpfad + SearchRec.name)) < (Date - 60) then
begin DeleteFile(); end; Gruss Sascha |
Re: Fileage ist veraltet
Zitat:
Zitat:
:duck: |
Re: Fileage ist veraltet
Es ist ja kein Fehler, sondern eine Warnung.
|
Re: Fileage ist veraltet
@TeronG
Hahahaha Ich bekomm dich auch noch. Witzbold :zwinker: @Luckie Ja stimmt, aber die würde ich gerne wegbekommen |
Re: Fileage ist veraltet
Ein einziger Blick in die Hilfe zu der Funktion würde dir die Lösung bringen.
|
Re: Fileage ist veraltet
Wie gsagt ich glaub ich steh da auf dem Schlauch
Delphi-Quellcode:
Hab ich doch
Fileage(String;TDateTime)
|
Re: Fileage ist veraltet
Zitat:
|
Re: Fileage ist veraltet
Zitat:
Grüße Klaus, |
Re: Fileage ist veraltet
Wenn da steht, die Funktion ist veraltet, wird es wohl eine neuere geben, die man stattdessen verwenden sollte. Das ist kein Fehler und hat mit der Aufruf-Syntax nichts zu tun. Sagt die Hilfe denn nicht, wie die andere Funktion heißt?
|
Re: Fileage ist veraltet
Zitat:
|
Re: Fileage ist veraltet
Die Suche nach
![]() |
Re: Fileage ist veraltet
Und genau daran hängt es, ich komm einfach nicht darauf.
Für mich sieht die neue Funktion wie die alte aus. Und die 2 Stück habe ich auch schon gesehen aber werde nicht schlau daraus. |
Re: Fileage ist veraltet
Delphi-Quellcode:
var
Testdatum : TDateTime; If (FileAge(Serverpfad + SearchRec.name,TestDatum) and (TestDatum < (Date - 60)) then begin DeleteFile(); end; |
Re: Fileage ist veraltet
Zitat:
|
Re: Fileage ist veraltet
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:
Hier nochmal richtig:
Delphi-Quellcode:
@DeddyH: Sorry, aber ich mach das zu gerne...
var
Testdatum : TDateTime; If FileAge(Serverpfad + SearchRec.name, TestDatum) and ( FileDateToDateTime(Testdatum ) < (Date - 60) ) then begin DeleteFile(); end; |
Re: Fileage ist veraltet
Zitat:
Grüße Klaus |
Re: Fileage ist veraltet
Delphi-Quellcode:
Ahh ok das Datum der Datei wir ins Testdatum übergeben und dadurch verglichen.
var
Testdatum : TDateTime; If FileAge(Serverpfad + SearchRec.name, TestDatum) and ( FileDateToDateTime(Testdatum ) < (Date - 60) ) then begin DeleteFile(); end; Hab ich gemacht, geht net Inkompatible Typen Integer und TDateTime |
Re: Fileage ist veraltet
Ich habe gerade die neue Syntax nicht zur Verfügung, aber müsste Testdatum nicht integer sein?
|
Re: Fileage ist veraltet
Delphi-Quellcode:
Das Problem liegt nicht bei
var
Testdatum : TDateTime; If FileAge(Serverpfad + SearchRec.name, TestDatum) and ( Testdatum < (Date - 60) ) then begin DeleteFile(); end; ![]() ![]() |
Re: Fileage ist veraltet
Danke für die ganzen Anworten jetzt funktioniert es und ich habe es verstanden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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