home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / pstoolbx / makefkal.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-28  |  5.1 KB  |  124 lines

  1. CONST   Copyright = ' (c) 1991 G. Blumert, Hochdonner Chaussee 16, D-2224 Burg/Dithm.';
  2.  
  3.  
  4.  
  5. TYPE
  6.  
  7.   Header_des_kalenderfiles = RECORD
  8.               cor                           : STRING[Length(Copyright)];
  9.               Kennung                       : CHAR;
  10.               Anzahl_der_Wochentage         : BYTE;
  11.               Anzahl_der_Monate             : BYTE;
  12.               Anzahl_der_Feiertage          : WORD;
  13.               SamstagsNr                    : BYTE;
  14.               SamstagFrei                   : BOOLEAN;
  15.               SonntagsNr                    : BYTE;
  16.               SonntagFrei                   : BOOLEAN;
  17.   END;
  18.  
  19.   Feiertagstabelle = RECORD
  20.                    Beachten    : BOOLEAN;
  21.                    JMin, JMax  : INTEGER;
  22.                    CASE Art: CHAR OF
  23.                      'A','O': (Differenz: INTEGER);
  24.                      'W': (T_min, T_max: WORD; Wochentagnummer: BYTE);
  25.                      'D','D': (Tagnummer: WORD);
  26.  
  27.   END;
  28. (********************************************************)
  29. CONST
  30.   AWt  = 10;
  31.   LWtN = 8;
  32.   AdM  = 12;
  33.   LdMN = 10;
  34.   AdF  = 20;
  35.   LdFN = 18;
  36.   Samstag = 8; SamsFrei = FALSE;
  37.   Sonntag = 9; SonnFrei = TRUE;
  38.  
  39. TYPE
  40.   wt_string = STRING[LWtN];
  41.   m_string  = STRING[LdMN];
  42.   ft_string = STRING[LdFN];
  43.  
  44. CONST
  45.  
  46. feiertage: ARRAY[1..AdF] OF ft_string = (
  47.    'Septuagésime',      { 1}
  48.    'Cendres',           { 2}
  49.    'Páques',            { 3}
  50.    'Rogations',         { 4}
  51.    'Rogations',         { 5}
  52.    'Rogations',         { 6}
  53.    'Ascension',         { 7}
  54.    'Pentecóte',         { 8}
  55.    'Trinité',           { 9}
  56.    'Féte-Dieu',         {10}
  57.    '1. Advent',         {11}
  58.    'Heiligabend',       {12}
  59.    '1. Weihnachtstag',  {13}
  60.    '2. Weihnachtstag',  {14}
  61.    'Féte de la Vertu',  {15}
  62.    '- du Génie',        {16}
  63.    '- du Travail',      {17}
  64.    '- de l''Opinion',   {18}
  65.    '- des Recompenses', {19}
  66.    '- de la Revolution');{20}
  67.  
  68. ftagdef: ARRAY[1..adf] OF Feiertagstabelle = (
  69.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -63),               {Septuagésime}
  70.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -46),               {Cendres}
  71.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 0),                 {Páques}
  72.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 36),                {Rogations}
  73.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 37),                {Rogations}
  74.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 38),                {Rogations}
  75.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 39),                {Ascension}
  76.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 49),                {Pentecóte}
  77.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 56),                {Trinité}
  78.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 60),                {Féte-Dieu}
  79.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: 0),                {1. Advent    }
  80.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 358),               {Heiligabend     }
  81.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 359),               {1. Weihnachtstag}
  82.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 360),               {2. Weihnachtstag}
  83.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 361),              {Genius}
  84.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 362),              {Arbeit}
  85.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 363),              {Mut}
  86.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 364),              {Auszeichnung}
  87.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 365),              {Kritik}
  88.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'F'; Tagnummer: 366));             {Sansculotte}
  89.  
  90.   wochentage: ARRAY[0..Pred(AWt)] OF wt_string = (
  91.               'Primedi', 'Duodi', 'Tridi', 'Quartidi', 'Quintidi', 'Sextidi',
  92.               'Septidi', 'Octidi', 'Nonodi', 'Décadi');
  93.  
  94.    monate:    ARRAY[1..AdM] OF m_string = (
  95.               'vendémaire', 'brumaire', 'frimaire', 'nivôse', 'pluviôse', 'ventôse',
  96.               'germinal', 'floréal', 'prairial', 'messidor', 'thermidor', 'fructidor');
  97.  
  98.   VAR f: FILE;
  99.       f_head: Header_des_Kalenderfiles;
  100.       i: BYTE;
  101. BEGIN
  102.   Assign(f,'f_kal.GK3');
  103.   Rewrite(f,1);
  104.   WITH f_head DO BEGIN
  105.     Cor := CopyRight;
  106.     Kennung := 'F';
  107.     Anzahl_der_Wochentage := AWt;
  108.     Anzahl_der_Monate := AdM;
  109.     Anzahl_der_Feiertage := AdF;
  110.     SamstagsNr := Samstag;
  111.     SamstagFrei := Samsfrei;
  112.     SonntagsNr := Sonntag;
  113.     SonntagFrei := SonnFrei
  114.   END;
  115.   BlockWrite(f,f_head,SizeOf(f_head)); {Kopf in Datei Schreiben}
  116.  
  117.   FOR i := 0 TO Pred(AWt) DO BlockWrite(f, wochentage[i],Succ(Length(wochentage[i])));
  118.   FOR i := 1 TO AdM DO BlockWrite(f, monate[i], Succ(Length((monate[i]))));
  119.   FOR i := 1 TO (adf) DO BlockWrite(f,feiertage[i],Succ(Length(feiertage[i])));
  120.  
  121.   BlockWrite(f,ftagdef,SizeOf(ftagdef));
  122.   Close(f);
  123. END.
  124.