Alter einer Datei abfragen



  • Hier geht es doch primär um den Vergleich 2er Datums/Zeitwerte. Es ist absolut unverständlich, dass das im UNIX Format passieren muss. Ein Vergleich ist mit TDateTime ebenso (einfach -> wie gezeigt) möglich. Ich kann nicht glauben, dass diese Funktionen erst im BCB 6 oder 2006 dazu gekommen sind.



  • Bei allem Respekt Staufenberg, aber ich muss Christian zustimmen. Dein Problem solltest du mit Hilfe der hier genannten Aspekte ohne weiteres lösen können und das ist ja schließlich das Ziel eines Threads hier.
    Jemand hat ein Problem und macht einen Thread auf und ein Anderer schenkt ihm Ansätze zur Lösung des Problems. Das hat Christian getan. Natürlich kannst du "deinen Weg" fordern, solltest aber auch andere Möglichkeiten würdigen und in betracht ziehen. Und auch ich denke, dass ein UNIX-Timestamp hier nicht notwendig ist.

    mfg cb



  • Wieso kommt ständig das "Verlgiechen" ? Ich sagte jetzt doch schon zwei mal das ich wissen will ob die Datei älter ist als 10Minuten. Wo ist das ein Vergleich? Das einfachste der Welt die differenz in Sekunden und fertig. Was ist daran unverständlich?

    Zu dem Rest sag ich nix mehr, das mir absolut zu doof was ihr hier abzieht.



  • Irgendwo wirst du doch mal - wie auch immer - programmiern müssen

    Wenn (Aktuelles_Datum-Datei_Datum > 10 Minuten)
    dann....

    Das ist ein Vergleich. Oder wie willst du dass sonst machen ohne Vergleich?



  • Staufenberg schrieb:

    Zu dem Rest sag ich nix mehr, das mir absolut zu doof was ihr hier abzieht.

    Gleich passiert dir hier das gleiche wie deinem Namensvetter im Juli '44.

    Was ist daran so schwer ?

    int fileDate=FileAge(filename);
    int sec = SecondsBetween(Now(),FileDateToDateTime(fileDate));
    


  • Ups übersehen. Du verwendest ja den Oldie Nr.5 😃



  • Christian211 schrieb:

    Wenn (Aktuelles_Datum-Datei_Datum > 10 Minuten)

    Ja und was sind nun 10min in TDateTime Format?

    @hellic
    Namensähnlichkeiten waren nicht beabsichtigt! Und warum mir? Bisher bekomme ich nur "lies die Hilfe" und Funktionen die mein Compiler nicht kennt. Über die zynischen herablassenden Kommentare mal nebensächlich. Ist Internet und manches kann man da einfach falsch verstehen.

    Aber soviele Beiträge ohne mal ein konkretes Beispiel, wo man es doch soviel schlauer weiss........................

    Hat keiner eine Ahnung wie man das aktuelle Datum in DOS Timestamp bekommt? 😮



  • du kannst die Differenz von "Hand" in etwa so berechnen.

    int fileDate=FileAge(fileName);
    int dif = (TDateTime(Now()-FileDateToDateTime(fileDate)).Val*24*60*60);
    int days,hours,min,sec;
    sec=dif%60;
    dif-=sec;
    dif/=60;
    min=dif%60;
    dif-=min;
    dif/=60;
    hours=dif%24;
    dif-=hours;
    dif/=24;
    days=dif;
    

    Beim BCB6 gibt es DateTimeToUnix aus den DateUtils um vom TDateTime einen Unix-Timestamp zu bekommen. Keine Ahnung ob es das schon beim 5er gab.



  • Aber für dein Problem mit den 10 Minuten reicht das hier:

    int fileDate=FileAge(fileName);
    int sec=TDateTime(Now()-FileDateToDateTime(fileDate)).Val*24*60*60;
    if(sec>600) Label1->Caption = "Datei älter als 10 Minuten";
    else Label1->Caption = "Datei noch keine 10 Minuten";
    


  • Ahhh, jetzt raff ich das mit Val. Bin total auf nen Sekunden Timestamp fixiert gewesen. Leider ist Val auch nirgendswo dokumentiert ausser direkt in der Beschreibung kurz. Aber da wurd ich net schlau draus wie dieser anzuwenden sei.. Vielen Dank!!, jetzt hab ich es auch verstanden. Schade das die VCL Funktionen fehlen. Würde ja nen Upgrade von BCB5pro auf 2006 machen wollen, aber habe angst das dann viele Delphi Komponenten nicht mehr laufen werden. 🤡



  • hellic schrieb:

    Beim BCB6 gibt es DateTimeToUnix aus den DateUtils um vom TDateTime einen Unix-Timestamp zu bekommen. Keine Ahnung ob es das schon beim 5er gab.

    Gibt es leider nicht und ich brauch es gerade auch. 🙄
    Gibt es eine Möglichkeit dies nach zu rüsten und natürlich auch die Funktion UnixToDateTime()?


Anmelden zum Antworten