Compile-Datum im Source-Code



  • Hallo.

    Ich habe eine kleine Frage an der ich schon etwas länger sitze:
    In einer Unit habe ich einen String angelegt. Dieser soll automatisch das Datum des Tages annehmen, an dem ich das Projekt kompiliere. Ich bin es leid, jedes mal das Datum anzugeben.

    Danke im Voraus.



  • Du kannst dafür das Makro __DATE__ verwenden.



  • Hi,
    Du könntest Dir mal die Präprozessorsymbole __TIME__ und __DATE__ anschauen.



  • Das Kompilierungsdatum ist eigentlich nicht so interessant, eher das Datum wo
    der Kram zusammengelinkt wurde. Da fehlt mir auch eine Lösung. Vielleicht geht's
    mit make ?



  • Hallo

    Meistens wird doch am gleichen Tag kompiliert und gelinkt 🙄
    Eine extra Datumsfunktion beim linken gibt es jedenfalls nicht.

    bis bald
    akari



  • Ja. Leider nicht *schneuz*

    Es wäre manchmal recht praktisch das zu haben ...



  • Vielen Dank an die Suchfunktion... wieder eine Frage gespart! 🙂 Nun muss ich das Datum nur noch in ein brauchbares Format bringen.

    MfG



  • Scheppertreiber schrieb:

    Das Kompilierungsdatum ist eigentlich nicht so interessant, eher das Datum wo
    der Kram zusammengelinkt wurde. Da fehlt mir auch eine Lösung. Vielleicht geht's
    mit make ?

    Wenn compilieren und linken bei dir nicht in einem Schritt gemacht wird, hast du warscheinlich irgendwelche Skripte (make, msbuild, ...).
    Nur so als Idee, erzeuge beim Linken (genauer gesagt vor dem Linken) eine Ressourcedatei welche das aktuelle Datum enthält. Dieses Datum kann entweder über die Dateieigenschaften angezeigt werden, oder dein Programm kann direkt auf die Ressource zugreifen.

    MfG Stephan



  • Probiere ich mal.

    __DATE__ habe ich den Quellfiles, da habe ich das Kompilierungsdatum.
    Ich verwende make, es sind doch einige Quellfiles, immer alles neu zu
    kompilieren dauert halt ...



  • ich schrieb:

    [...] Nun muss ich das Datum nur noch in ein brauchbares Format bringen. [...]

    Das ist in diesem Fall nicht so einfach. Kann mir mal jemand einen Denkanstoss geben...

    1. Wie mache ich aus dem char-Array das mir __DATE__ liefert einen AnsiString / neues char-Array in einem anderen Format, ohne ewig viel Code zu erzeugen?

    Bsp: __DATE__ liefert: Aug 11 2010. Ich möchte: 11. August 2010.

    2. Ist es möglich zu beeinflussen, in welchem Format mir __DATE__ das Compile-Datum gibt?

    Mit strftime und time.h generell komme ich nicht weiter, da ist char* immer die Endstation. __DATE__ liefert aber schon char...
    BDS-Routinen wie StrToDate() in Verbindung mit FormatDateTime() helfen auch nicht. __DATE__ bringt nicht das richtige Format, um in TDateTime umgewandelt werden zu können... StrToDate() wirft berechtigterweise immer eine EConvertError-Exception.
    Ich hab schon versucht ShortDateFormat und DateSeparator vor dem Aufruf von StrToDate() anzupassen, geholfen hats nix -> Exception.

    Die Forumsuche bringt viel zur Problematik ans Licht, nur bisher leider Nichts was ich auf meinen Fall ummünzen konnte...

    Im Moment scheint für mich Alles darauf hinaus zu laufen, die Format-Konvertierung zu Fuss zu machen. Das ist nicht zufriedenstellend!

    MfG

    PS: Sollte ich ein neues Thema dazu aufmachen oder können wir das hier klären? Passt ja eigentlich gut zum Thema "Compile-Datum im Source-Code"...

    Edit: *push*


Anmelden zum Antworten