home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / pstoolbx / makemkal.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-28  |  6.9 KB  |  157 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.  
  20.   Feiertagstabelle = RECORD
  21.                    Beachten    : BOOLEAN;
  22.                    JMin, JMax  : INTEGER;
  23.                    CASE Art: CHAR OF
  24.                      'A','O': (Differenz: INTEGER);
  25.                      'W': (T_min, T_max: WORD; Wochentagnummer: BYTE);
  26.                      'D': (Tagnummer: WORD);
  27.  
  28.   END;
  29. (********************************************************)
  30. CONST
  31.   AWt  = 7;
  32.   LWtN = 10;
  33.   AdM  = 12;
  34.   LdMN = 13;
  35.   AdF  = 34;
  36.   LdFN = 18;
  37.   Samstag = 5; SamsFrei = TRUE;
  38.   Sonntag = 6; SonnFrei = TRUE;
  39.  
  40. TYPE
  41.   wt_string = STRING[LWtN];
  42.   m_string  = STRING[LdMN];
  43.   ft_string = STRING[LdFN];
  44.  
  45. CONST
  46. feiertage: ARRAY[1..AdF] OF ft_string = (
  47.    'Neujahr',           { 1}
  48.    'Aschura',           { 2}
  49.    'Moh''s Geburt',     { 3}
  50.    'Moh''s Tod',        { 4}
  51.    'Has.al-Bannas Tod', { 5}
  52.    'Ali''s Geburt',     { 6}
  53.    'Ali''s Tod',        { 7}
  54.    'Erober. Konstant.', { 8}
  55.    'Lail. reghaib',     { 9}
  56.    'Lail. miradsch',    {10}
  57.    'Huss. Geburt',      {11}
  58.    'Lail. berat',       {12}
  59.    'erster Ramadan',    {13}
  60.    'Khadidschas Tod',   {14}
  61.    'Erober. Mekkas',    {15}
  62.    'Lail. Kadar',       {16}
  63.    'letzter Ramadan',   {17}
  64.    'gr. Bairam',        {18}
  65.    'gr. Bairam',        {19}
  66.    'gr. Bairam',        {20}
  67.    'Herab Kaaba',       {21}
  68.    'kl. Bairam',        {22}
  69.    'kl. Bairam',        {23}
  70.    'kl. Bairam',        {24}
  71.    'kl. Bairam',        {25}
  72.    'Ostern',            {26}
  73.    'Karfreitag',        {27}
  74.    'Ostermontag',       {28}
  75.    'Himmelfahrt',       {29}
  76.    'Pfingstsonntag',    {30}
  77.    'Pfingstmontag',     {31}
  78.    'Fronleichnam',      {32}
  79.    'Allerheiligen',     {33}
  80.    '1. Advent');        {34}
  81.  
  82.  
  83. ftagdef: ARRAY[1..adf] OF Feiertagstabelle = (
  84.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 1),                 {Neujahr}
  85.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 10),                {Aschura}
  86.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 59+12),             {Meulud}
  87.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 59+13),             {Moh's Todestag}
  88.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 89+14),             {Hasan al-Bannas Todestag}
  89.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 118+8),             {Ali's GebT}
  90.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 118+15),            {Ali's Todestag}
  91.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 118+20),            {Eroberung Konstantinopels}
  92.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 177+4),             {Lail. reghaib}
  93.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 177+27),            {Lail. miradsch}
  94.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 207+3),             {Huss GebT.}
  95.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 207+15),            {Lail. berat}
  96.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 236+1),             {1. Ramadan}
  97.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 236+10),            {Khadidschas Tod}
  98.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 236+19),            {Erober. Mekkas}
  99.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 236+27),            {Lail kadar}
  100.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 236+30),            {Letzter Ramadan}
  101.          (Beachten: TRUE; JMin: 0; JMax: 0; ARt: 'M'; Tagnummer: 266+1),             {gr. Bairam}
  102.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 266+2),             {gr. Bairam}
  103.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 266+3),             {gr. Bairam}
  104.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 295+5),             {Herab Kaaba}
  105.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 325+10),            {kl. Bairam}
  106.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 325+11),            {kl. Bairam}
  107.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 325+12),            {kl. Bairam}
  108.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'M'; Tagnummer: 325+13),            {kl. Bairam}
  109.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 0),                {Ostern}
  110.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -2),               {Karfreitag}
  111.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 1),                {Ostermontag}
  112.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 39),               {Himmelfahrt     }
  113.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 49),               {Pfingstsonntag  }
  114.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 50),               {Pfingstmontag   }
  115.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 60),               {Fronleichnam    }
  116.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 305),              {Allerheiligen   }
  117.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: 0));               {1. Advent}
  118.  
  119.  
  120.   wochentage: ARRAY[0..Pred(AWt)] OF wt_string = (
  121.               'al-itnain','at-tulata`','al`arbi`a`','al-chamis',
  122.               'aldschum`a','as-sabt','al-`ahad');
  123.  
  124.    monate:    ARRAY[1..AdM] OF m_string = (
  125.               'Muharram','Safar','Rabi` I.','Rabi` II.','Dschumada I.',
  126.               'Dschumada II.','Radschab','Scha`ban','Ramadan','Schawwal',
  127.               'Dsu l-qa`da','Dsu l-hidja');
  128.  
  129.   VAR f: FILE;
  130.       f_head: Header_des_Kalenderfiles;
  131.       i: BYTE;
  132. BEGIN
  133.   Assign(f,'M_KAL.GK3');
  134.   Rewrite(f,1);
  135.   WITH f_head DO BEGIN
  136.     cor := copyright;
  137.     Kennung := 'M';
  138.     Anzahl_der_Wochentage := AWt;
  139.     Anzahl_der_Monate := AdM;
  140.     Anzahl_der_Feiertage := AdF;
  141.     SamstagsNr := Samstag;
  142.     SamstagFrei := Samsfrei;
  143.     SonntagsNr := Sonntag;
  144.     SonntagFrei := SonnFrei
  145.  
  146.   END;
  147.   BlockWrite(f,f_head,SizeOf(f_head)); {Kopf in Datei Schreiben}
  148.  
  149.   FOR i := 0 TO Pred(AWt) DO BlockWrite(f, wochentage[i],Succ(Length(wochentage[i])));
  150.   FOR i := 1 TO AdM DO BlockWrite(f, monate[i], Succ(Length((monate[i]))));
  151.   FOR i := 1 TO (adf) DO BlockWrite(f,feiertage[i],Succ(Length(feiertage[i])));
  152.  
  153.  
  154.   BlockWrite(f,ftagdef,SizeOf(ftagdef));
  155.   Close(f);
  156. END.
  157.