Index: freexp/compdate.pas
===================================================================
RCS file: /server/cvs/freexp/compdate.pas,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- a/freexp/compdate.pas       3 May 2004 18:34:04 -0000       1.1
+++ b/freexp/compdate.pas       10 May 2004 20:43:18 -0000      1.2
@@ -6,26 +6,66 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: compdate.pas,v 1.1 2004/05/03 18:34:04 mw Exp $ }
+{ $Id: compdate.pas,v 1.2 2004/05/10 20:43:18 my Exp $ }
 unit compdate;
 
 interface
 
 const
-  comp_YY:=0;
-  comp_MO:=0;
-  comp_DD:=0;
-  comp_HH:=0;
-  comp_MI:=0;
-  comp_SS:=0;
+  comp_YY:='0000';
+  comp_MO:='00';
+  comp_DD:='00';
+  comp_HH:='00';
+  comp_MI:='00';
+  comp_SS:='00';
 
 implementation
 
 end.
 {
   $Log: compdate.pas,v $
+  Revision 1.2  2004/05/10 20:43:18  my
+  MY:- In Dummy-Unit 'compdate.pas' allen Konstanten vier- bzw.
+       zweistellige Strings aus Nullen zuweisen (statt Integer).
+
+  MY:- Hinweise zur Verwendung von gendate.pas/compdate.pas:
+       -----------------------------------------------------
+       1. gendate.pas wird bei jedem via BUILD.BAT ausgel�sten
+          Compiliervorgang compiliert, anschlie�end im Source-Root
+          ausgef�hrt und erzeugt eine Unit compdate.pas, die in diversen
+          Konstanten, die beliebig zusammengesetzt werden k�nnen,
+          lediglich den Timestamp des aktuell zu erstellenden Compilats
+          enth�lt.
+       2. Da compdate.pas in die jeweiligen Programme (XP, UUZ usw.)
+          eingebunden wird, l��t sich so der echte Compile-Timestamp
+          fest in diese Programme eincompilieren (statt wie bisher den
+          Timestamp der erzeugten EXE als Referenz nehmen zu m�ssen).
+          Damit ist gew�hrleistet, da� auch bei Ver�nderungen des
+          Timestamps der EXE (z.B. beim Entpacken oder Kopieren) das
+          Programm in den diversen Ausgaben, Versionsmeldungen usw. immer
+          den tats�chlichen Compile-Timestamp ausgibt.
+       3. Anschlie�end werden alle zu einer Distribution geh�renden
+          Dateien auf den in compdate.pas enthaltenen Timestamp via
+          TOUCH.EXE auf denselben korrekten Compile-Timestamp gesetzt.
+       4. Das Ganze funktioniert *nicht* bei (z.B. zu Testzwecken) �ber
+          die IDE erzeugten Compilaten. Damit diese �berhaupt erstellt
+          werden k�nnen, befindet sich im CVS-Repository ein Dummy-Unit
+          compdate.pas, die ausschlie�lich Strings aus Nullen enth�lt. Die
+          Programme, die compdate.pas benutzen, m�ssen darauf pr�fen (z.B.
+          "if comp_YY='0000'") und sollten dann wie fr�her ersatzweise den
+          Timestamp der EXE f�r die Ausgabe heranziehen.
+          GENDATE.EXE sollte daher nie h�ndisch im Source-Root ausgef�hrt
+          werden, weil es die bestehende Dummy-Unit �berschreiben und die
+          oben beschriebene Logik bei IDE-Compilaten dann nicht mehr
+          funktionieren w�rde. Ggf. sollte nach einem versehentlichen
+          Ausf�hren von GENDATE.EXE der aktuelle Stand der compdate.pas
+          neu vom CVS-Repository bezogen werden.
+       5. BUILD.BAT hingegen sichert bei jedem Lauf den Dummy der
+          compdate.pas, um ihn am Ende des Compiliervorgangs wieder zu
+          restaurieren.
+
   Revision 1.1  2004/05/03 18:34:04  mw
   MW: - Neue Unit COMPDATE implementiert. Sie erlaubt in Verbindung
-        mit Gendate ein 100% zuverl�ssigen Timestamp beim Compilieren.
+        mit Gendate einen 100% zuverl�ssigen Timestamp beim Compilieren.
 
 }
Index: freexp/gendate.pas
===================================================================
RCS file: /server/cvs/freexp/gendate.pas,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- a/freexp/gendate.pas        3 May 2004 18:34:04 -0000       1.1
+++ b/freexp/gendate.pas        10 May 2004 20:43:46 -0000      1.2
@@ -6,20 +6,19 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: gendate.pas,v 1.1 2004/05/03 18:34:04 mw Exp $ }
+{ $Id: gendate.pas,v 1.2 2004/05/10 20:43:46 my Exp $ }
 program gendate;
 
-uses dos,crt;
+uses dos,crt,typeform;
 
 var t:datetime;
     hund,dow:Word;
     f:text;
-    s:string;
 
 begin
   Gettime(t.Hour,t.Min,t.Sec,hund);
   Getdate(t.Year,t.Month,t.Day,dow);
-  Assign(f,'COMPDATE.PAS');
+  Assign(f,'compdate.pas');
   Rewrite(f);
   writeln(f,'{ --------------------------------------------------------------- }');
   writeln(f,'{ Dieser Quelltext ist urheberrechtlich geschuetzt.               }');
@@ -35,18 +34,12 @@
   writeln(f,'interface');
   writeln(f,'');
   writeln(f,'const');
-  str(t.Year,s);
-  writeln(f,'  comp_YY:='+s+';');
-  str(t.Month,s);
-  writeln(f,'  comp_MO:='+s+';');
-  str(t.Day,s);
-  writeln(f,'  comp_DD:='+s+';');
-  str(t.Hour,s);
-  writeln(f,'  comp_HH:='+s+';');
-  str(t.Min,s);
-  writeln(f,'  comp_MI:='+s+';');
-  str(t.Sec,s);
-  writeln(f,'  comp_SS:='+s+';');
+  writeln(f,'  comp_YY:='''+strs(t.Year)+''';');
+  writeln(f,'  comp_MO:='''+formi(t.Month,2)+''';');
+  writeln(f,'  comp_DD:='''+formi(t.Day,2)+''';');
+  writeln(f,'  comp_HH:='''+formi(t.Hour,2)+''';');
+  writeln(f,'  comp_MI:='''+formi(t.Min,2)+''';');
+  writeln(f,'  comp_SS:='''+formi(t.Sec,2)+''';');
   writeln(f,'');
   writeln(f,'implementation');
   writeln(f,'');
@@ -58,8 +51,52 @@
 end.
 {
   $Log: gendate.pas,v $
+  Revision 1.2  2004/05/10 20:43:46  my
+  MY:- Konstanten comp_MO, comp_DD, comp_HH, comp_MI und comp_SS via
+       typeform.strs() ggf. mit Nullen zu zweistelligen Zahlen auff�llen
+       und allen Konstanten in der erzeugten Unit 'compdate.pas' als
+       String zuweisen (damit in den Units, die danach compdate.pas
+       verwenden, keine Typumwandlung mehr erforderlich ist).
+     - Dateiname 'compdate.pas' jetzt klein schreiben.
+
+  MY:- Hinweise zur Verwendung von gendate.pas/compdate.pas:
+       -----------------------------------------------------
+       1. gendate.pas wird bei jedem via BUILD.BAT ausgel�sten
+          Compiliervorgang compiliert, anschlie�end im Source-Root
+          ausgef�hrt und erzeugt eine Unit compdate.pas, die in diversen
+          Konstanten, die beliebig zusammengesetzt werden k�nnen,
+          lediglich den Timestamp des aktuell zu erstellenden Compilats
+          enth�lt.
+       2. Da compdate.pas in die jeweiligen Programme (XP, UUZ usw.)
+          eingebunden wird, l��t sich so der echte Compile-Timestamp
+          fest in diese Programme eincompilieren (statt wie bisher den
+          Timestamp der erzeugten EXE als Referenz nehmen zu m�ssen).
+          Damit ist gew�hrleistet, da� auch bei Ver�nderungen des
+          Timestamps der EXE (z.B. beim Entpacken oder Kopieren) das
+          Programm in den diversen Ausgaben, Versionsmeldungen usw. immer
+          den tats�chlichen Compile-Timestamp ausgibt.
+       3. Anschlie�end werden alle zu einer Distribution geh�renden
+          Dateien auf den in compdate.pas enthaltenen Timestamp via
+          TOUCH.EXE auf denselben korrekten Compile-Timestamp gesetzt.
+       4. Das Ganze funktioniert *nicht* bei (z.B. zu Testzwecken) �ber
+          die IDE erzeugten Compilaten. Damit diese �berhaupt erstellt
+          werden k�nnen, befindet sich im CVS-Repository ein Dummy-Unit
+          compdate.pas, die ausschlie�lich Strings aus Nullen enth�lt. Die
+          Programme, die compdate.pas benutzen, m�ssen darauf pr�fen (z.B.
+          "if comp_YY='0000'") und sollten dann wie fr�her ersatzweise den
+          Timestamp der EXE f�r die Ausgabe heranziehen.
+          GENDATE.EXE sollte daher nie h�ndisch im Source-Root ausgef�hrt
+          werden, weil es die bestehende Dummy-Unit �berschreiben und die
+          oben beschriebene Logik bei IDE-Compilaten dann nicht mehr
+          funktionieren w�rde. Ggf. sollte nach einem versehentlichen
+          Ausf�hren von GENDATE.EXE der aktuelle Stand der compdate.pas
+          neu vom CVS-Repository bezogen werden.
+       5. BUILD.BAT hingegen sichert bei jedem Lauf den Dummy der
+          compdate.pas, um ihn am Ende des Compiliervorgangs wieder zu
+          restaurieren.
+
   Revision 1.1  2004/05/03 18:34:04  mw
   MW: - Neue Unit COMPDATE implementiert. Sie erlaubt in Verbindung
-        mit Gendate ein 100% zuverl�ssigen Timestamp beim Compilieren.
+        mit Gendate einen 100% zuverl�ssigen Timestamp beim Compilieren.
 
 }

------------------------------------------------------------------------
FreeXP CVS-Mailingliste
[EMAIL PROTECTED]
http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list

Antwort per Email an