Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi XE2 Build Nr to Date - Solved (https://www.delphipraxis.net/180358-xe2-build-nr-date-solved.html)

FatPap 14. Mai 2014 15:37


XE2 Build Nr to Date - Solved
 
Hab wohl gerade eine Denkblockade. XE2 bietet ja die Möglichkeit "Build-Nummer automatisch erzeugen" in den Projektoptionen.

Die Dateiversion sieht dann so ähnlich aus:

1.0.5245.55019

1 = Hauptversion
0 = Nebenversion
5245 = Tage seit 1.1.2000
55019 = Sekunden seit Mitternacht

Also ich würde gerne "5248.55019" wieder zu einem TDateTime Wert umwandeln. Vielleicht hat jemand eine gute Idee dazu?

Soweit bin ich schon :? :
Code:
var TageSeitErzeugenUndHeute: Integer;
begin
  TageSeitErzeugenUndHeute := DaysBetween(Today, StrToDate('31.12.1999')) - 5245;
end;
Man kann sagen ich weiss wieviele Tage vergangen sind zwischen erzeugen und heute. Aber wie bekomm ich dass nun in einen TDate Wert umgewandelt?

Uwe Raabe 14. Mai 2014 15:43

AW: XE2 Build Nr to Date ?
 
Delphi-Quellcode:
EncodeDate(2000,1,1) + 5245 + 55019/SecsPerDay;

himitsu 14. Mai 2014 16:23

AW: XE2 Build Nr to Date ?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1258909)
Delphi-Quellcode:
EncodeDate(2000,1,1) + 5245 + 55019/SecsPerDay;

Oder über die entsprechenden Funktionen
Delphi-Quellcode:
IncSecond(IncDay(EncodeDate(2000,1,1), 5245), 55019)

FatPap 15. Mai 2014 07:24

AW: XE2 Build Nr to Date - Solved
 
Vielen Dank euch beiden, ging ja einfach. Kannte leider die Encode-Funktionen nicht.

himitsu 15. Mai 2014 07:50

AW: XE2 Build Nr to Date - Solved
 
Es gibt auch Delphi-Referenz durchsuchenStrToDateTime uvm., aber da muß man auf das FormatSetting aufpassen,
oder man nimmt direkt den nummerischen Wert des Datums als Konstante.

bcvs 15. Mai 2014 08:19

AW: XE2 Build Nr to Date - Solved
 
Auch wenn dein Problem schon gelöst ist, hier ein Alternativvorschlag:

Ich nehme an, du willst irgenwo im Programm Build-Datum und -Uhrzeit anzeigen.

Ich rufe dazu in den Pre-Build-Befehlen ein kleines Programm auf, das mir diesen Unit-Quellcode erzeugt:

Delphi-Quellcode:
unit VersionInfo;
interface
const
  VersionDate='15.05.2014';
  VersionTime='08:52:18';
implementation
end.

himitsu 15. Mai 2014 08:59

AW: XE2 Build Nr to Date - Solved
 
Es wird auch schon seit sehr vielen Jahren das Compile-Datum im PE-Header abgelegt. (und seit "kurzem" macht das Delphi sogar richtig und nicht mehr hinter einem Magic-Wert versteckt)

Das zusätzliche Datum in der Dateiversion hat aber zumindestens noch den Vorteil, daß der Endbenutzer das auch im Explorer (Dateieigenschaften) sehen kann, ohne das Programm zu starten. (oder irgendein Programm, welches den PE-Header ausliest)

Sherlock 15. Mai 2014 10:45

AW: XE2 Build Nr to Date - Solved
 
Problem ist ja gelöst, und wir können so langsam philosophisch werden. Was sagt eigentlich das Datum in der Buildnummer über den tatsächlichen Inhalt aus?

Sherlock

himitsu 15. Mai 2014 11:08

AW: XE2 Build Nr to Date - Solved
 
Wobei man sich jetzt überlegen kann, ob die Endbenutzer damit auch etwas anfangen können. (ohne zu wissen was es bedeutet)

Nja, immerhin gibt es so eine automatische zeitabhängige Zählung, womit man auch bei gleichen Versionsnummern (Major und Minor) die das alter der Dateiversionen unterscheiden kann.

PS: Ich hatte letztens bei uns es so gemacht, daß im Info-Dialog und im Startbildschirm die Versionsnummer uch etwas aussagefähiger wird.
Wobei ich dort den Verzeichnisnamen (das Repository/Branch) und die Revision mit angebe, aber vorwiegend, damit wir wissen was nun wirklich für eine Version bei welchem Kunden grade rumliegt. Das wird dort ebenfalls über eine Unit mit Konstanten reingebracht, welche allerdings vom FinalBuilder erstellt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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