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
Seite 2 von 2     12   
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 11:55
Die Suche nach Hier im Forum suchenFileage AND veraltet könnte helfen - die Frage gab es schon 2x
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 11:58
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.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 12:01
Delphi-Quellcode:
var
  Testdatum : TDateTime;

If (FileAge(Serverpfad + SearchRec.name,TestDatum) and (TestDatum < (Date - 60)) then
begin
  DeleteFile();
end;
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#14

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 12:02
Zitat von Roachford:
Die neue heisst genauso und ist überladen und genau deshalb liegt es an der Aufrufsyntax. Also nochmal zurück zum Anfang und dann erneut argumentieren...
Klugscheißer Ich habe auf der Firma nur Delphi 5 zur Verfügung, da kann ich nicht nachsehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Roachford
(Gast)

n/a Beiträge
 
#15

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 12: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
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 12:06
Zitat von Roachford:
Ui, ein Boolean mit einer Zeit vergleichen? Und wozu dann noch die Variable?
habe es oben schon korregiert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#17

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 12:09
Delphi-Quellcode:
var
  Testdatum : TDateTime;

If FileAge(Serverpfad + SearchRec.name, TestDatum) and ( FileDateToDateTime(Testdatum ) < (Date - 60) ) then
begin
  DeleteFile();
end;
Ahh ok das Datum der Datei wir ins Testdatum übergeben und dadurch verglichen.

Hab ich gemacht, geht net

Inkompatible Typen Integer und TDateTime
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#18

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 13:19
Ich habe gerade die neue Syntax nicht zur Verfügung, aber müsste Testdatum nicht integer sein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Roachford
(Gast)

n/a Beiträge
 
#19

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 13:21
Delphi-Quellcode:
var
  Testdatum : TDateTime;

If FileAge(Serverpfad + SearchRec.name, TestDatum) and ( Testdatum < (Date - 60) ) then
begin
  DeleteFile();
end;
Das Problem liegt nicht bei Delphi-Referenz durchsuchenFileAge(), sondern bei Delphi-Referenz durchsuchenFileTimeToDateTime(). Diese Umwandlung wird von FileAge() nun schon durchgeführt.
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Fileage ist veraltet

  Alt 24. Sep 2008, 13:28
Danke für die ganzen Anworten jetzt funktioniert es und ich habe es verstanden.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:58 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