highlight.pas

    PROGRAM MKFILE;

    USES    crt,algebra;

    TYPE    dt = record e : record name     : string [15];
                                   zeichen  : string [2];
                                   ozahl    : byte;
                                   amasse   : string [9];
                                   ent      : array [1..4]  of string [70]
                            end;

                        c : record txt      : array [1..10] of string [40];
                                   radien   : array [1..2]  of string [6];
                                   elneg    : string [7];
                                   kladung  : string [5]
                            end;

                        p : record smt      : string [8];
                                   sdt      : string [8];
                                   dichte   : string [15];
                                   volmol   : string [13];
                            end;

                        u : record bio      : array [1..13] of string [30];
                                   hauf     : array [1..4] of string [30];
                                   geo      : array [1..6] of string [30];
                            end;

                        s : record n        : byte;
                                   bele     : array [1..7] of byte;
                            end;

                        i : record first    : word;
                                   last     : word;
                                   c1       : array [1..100] of byte;
                                   c2       : array [1..100] of byte;
                                   c3       : array [1..100] of byte;
                                   c4       : array [1..100] of byte;
                                   hzeit    : array [1..100] of array [1..2] of string [7];
                            end;
                 end;

            cfg = record pse  : string;
                         bgi  : string;
                         info : string;
                  end;

    VAR     i     : dt;
            h     : file of dt;

            t     : cfg;
            u     : file of cfg;

            zstr  : string;
            ozahl : byte;

    PROCEDURE MKELEMENT (ozahl:byte);
    BEGIN     CASE ozahl OF
                 1    : i.e.name:='Wasserstoff';
                 2    : i.e.name:='Helium';
                 3    : i.e.name:='Lithium';
                 4    : i.e.name:='Beryllium';
                 5    : i.e.name:='Bor';
                 6    : i.e.name:='Kohlenstoff';
                 7    : i.e.name:='Stickstoff';
                 8    : i.e.name:='Sauerstoff';
                 9    : i.e.name:='Fluor';
                 10   : i.e.name:='Neon';
                 11   : i.e.name:='Natrium';
                 12   : i.e.name:='Magnesium';
                 13   : i.e.name:='Aluminium';
                 14   : i.e.name:='Silicium';
                 15   : i.e.name:='Phosphor';
                 16   : i.e.name:='Schwefel';
                 17   : i.e.name:='Chlor';
                 18   : i.e.name:='Argon';
                 19   : i.e.name:='Kalium';
                 20   : i.e.name:='Calzium';
                 21   : i.e.name:='Scandium';
                 22   : i.e.name:='Titan';
                 23   : i.e.name:='Vanadium';
                 24   : i.e.name:='Chrom';
                 25   : i.e.name:='Mangan';
                 26   : i.e.name:='Eisen';
                 27   : i.e.name:='Cobalt';
                 28   : i.e.name:='Nickel';
                 29   : i.e.name:='Kupfer';
                 30   : i.e.name:='Zink';
                 31   : i.e.name:='Gallium';
                 32   : i.e.name:='Germanium';
                 33   : i.e.name:='Arsen';
                 34   : i.e.name:='Selen';
                 35   : i.e.name:='Brom';
                 36   : i.e.name:='Krypton';
                 37   : i.e.name:='Rubidium';
                 38   : i.e.name:='Strontium';
                 39   : i.e.name:='Yttrium';
                 40   : i.e.name:='Zirconium';
                 41   : i.e.name:='Niob';
                 42   : i.e.name:='Molybd�n';
                 43   : i.e.name:='Technetium';
                 44   : i.e.name:='Ruthenium';
                 45   : i.e.name:='Rhodium';
                 46   : i.e.name:='Paladium';
                 47   : i.e.name:='Silber';
                 48   : i.e.name:='Cadmium';
                 49   : i.e.name:='Indium';
                 50   : i.e.name:='Zinn';
                 51   : i.e.name:='Antimon';
                 52   : i.e.name:='Tellur';
                 53   : i.e.name:='Iod';
                 54   : i.e.name:='Xenon';
                 55   : i.e.name:='Caesium';
                 56   : i.e.name:='Barium';
                 57   : i.e.name:='Lanthan';
                 58   : i.e.name:='Cer';
                 59   : i.e.name:='Praseodym';
                 60   : i.e.name:='Neodym';
                 61   : i.e.name:='Promelthium';
                 62   : i.e.name:='Samarium';
                 63   : i.e.name:='Europium';
                 64   : i.e.name:='Gadolinium';
                 65   : i.e.name:='Terbium';
                 66   : i.e.name:='Dysprosium';
                 67   : i.e.name:='Holmiuim';
                 68   : i.e.name:='Erbium';
                 69   : i.e.name:='Thulium';
                 70   : i.e.name:='Ytterbium';
                 71   : i.e.name:='Lutetium';
                 72   : i.e.name:='Hafnium';
                 73   : i.e.name:='Tanal';
                 74   : i.e.name:='Wolfram';
                 75   : i.e.name:='Rhenium';
                 76   : i.e.name:='Osmium';
                 77   : i.e.name:='Iridium';
                 78   : i.e.name:='Platin';
                 79   : i.e.name:='Gold';
                 80   : i.e.name:='Quecksilber';
                 81   : i.e.name:='Thalium';
                 82   : i.e.name:='Blei';
                 83   : i.e.name:='Wissmut';
                 84   : i.e.name:='Polonium';
                 85   : i.e.name:='Astat';
                 86   : i.e.name:='Radon';
                 87   : i.e.name:='Francium';
                 88   : i.e.name:='Radium';
                 89   : i.e.name:='Actinium';
                 90   : i.e.name:='Thorium';
                 91   : i.e.name:='Protactinium';
                 92   : i.e.name:='Uran';
                 93   : i.e.name:='Neptunium';
                 94   : i.e.name:='Plutonium';
                 95   : i.e.name:='Americum';
                 96   : i.e.name:='Curium';
                 97   : i.e.name:='Berkelium';
                 98   : i.e.name:='Californium';
                 99   : i.e.name:='Einsteinium';
                 100  : i.e.name:='Fermium';
                 101  : i.e.name:='Mendelevium';
                 102  : i.e.name:='Nobelium';
                 103  : i.e.name:='Lawrencium';
                 104  : i.e.name:='Rutherfordium';
                 105  : i.e.name:='Dubnium';
              END;

              CASE ozahl OF
                 1    : i.e.zeichen:='H';
                 2    : i.e.zeichen:='He';
                 3    : i.e.zeichen:='Li';
                 4    : i.e.zeichen:='Be';
                 5    : i.e.zeichen:='B';
                 6    : i.e.zeichen:='C';
                 7    : i.e.zeichen:='N';
                 8    : i.e.zeichen:='O';
                 9    : i.e.zeichen:='F';
                 10   : i.e.zeichen:='Ne';
                 11   : i.e.zeichen:='Na';
                 12   : i.e.zeichen:='Mg';
                 13   : i.e.zeichen:='Al';
                 14   : i.e.zeichen:='Si';
                 15   : i.e.zeichen:='P';
                 16   : i.e.zeichen:='S';
                 17   : i.e.zeichen:='Cl';
                 18   : i.e.zeichen:='Ar';
                 19   : i.e.zeichen:='K';
                 20   : i.e.zeichen:='Sa';
                 21   : i.e.zeichen:='Sc';
                 22   : i.e.zeichen:='Ti';
                 23   : i.e.zeichen:='V';
                 24   : i.e.zeichen:='Cr';
                 25   : i.e.zeichen:='Mn';
                 26   : i.e.zeichen:='Fe';
                 27   : i.e.zeichen:='Co';
                 28   : i.e.zeichen:='Ni';
                 29   : i.e.zeichen:='Cu';
                 30   : i.e.zeichen:='Zn';
                 31   : i.e.zeichen:='Ga';
                 32   : i.e.zeichen:='Ge';
                 33   : i.e.zeichen:='As';
                 34   : i.e.zeichen:='Se';
                 35   : i.e.zeichen:='Br';
                 36   : i.e.zeichen:='Kr';
                 37   : i.e.zeichen:='Rb';
                 38   : i.e.zeichen:='Sr';
                 39   : i.e.zeichen:='Y';
                 40   : i.e.zeichen:='Zr';
                 41   : i.e.zeichen:='Nb';
                 42   : i.e.zeichen:='Mo';
                 43   : i.e.zeichen:='Tc';
                 44   : i.e.zeichen:='Ru';
                 45   : i.e.zeichen:='Rh';
                 46   : i.e.zeichen:='Pd';
                 47   : i.e.zeichen:='Ag';
                 48   : i.e.zeichen:='Cd';
                 49   : i.e.zeichen:='In';
                 50   : i.e.zeichen:='Sn';
                 51   : i.e.zeichen:='Sb';
                 52   : i.e.zeichen:='Te';
                 53   : i.e.zeichen:='I';
                 54   : i.e.zeichen:='Xe';
                 55   : i.e.zeichen:='Cs';
                 56   : i.e.zeichen:='Ba';
                 57   : i.e.zeichen:='La';
                 58   : i.e.zeichen:='Ce';
                 59   : i.e.zeichen:='Pr';
                 60   : i.e.zeichen:='Nd';
                 61   : i.e.zeichen:='Pm';
                 62   : i.e.zeichen:='Sm';
                 63   : i.e.zeichen:='Eu';
                 64   : i.e.zeichen:='Gd';
                 65   : i.e.zeichen:='Tb';
                 66   : i.e.zeichen:='Dy';
                 67   : i.e.zeichen:='Ho';
                 68   : i.e.zeichen:='Er';
                 69   : i.e.zeichen:='Tm';
                 70   : i.e.zeichen:='Yb';
                 71   : i.e.zeichen:='Lu';
                 72   : i.e.zeichen:='Hf';
                 73   : i.e.zeichen:='Ta';
                 74   : i.e.zeichen:='W';
                 75   : i.e.zeichen:='Re';
                 76   : i.e.zeichen:='Os';
                 77   : i.e.zeichen:='Ir';
                 78   : i.e.zeichen:='Pt';
                 79   : i.e.zeichen:='Au';
                 80   : i.e.zeichen:='Hg';
                 81   : i.e.zeichen:='Tl';
                 82   : i.e.zeichen:='Pb';
                 83   : i.e.zeichen:='Bi';
                 84   : i.e.zeichen:='Po';
                 85   : i.e.zeichen:='At';
                 86   : i.e.zeichen:='Rn';
                 87   : i.e.zeichen:='Fr';
                 88   : i.e.zeichen:='Ra';
                 89   : i.e.zeichen:='Ac';
                 90   : i.e.zeichen:='Th';
                 91   : i.e.zeichen:='Pa';
                 92   : i.e.zeichen:='U';
                 93   : i.e.zeichen:='Np';
                 94   : i.e.zeichen:='Pu';
                 95   : i.e.zeichen:='Am';
                 96   : i.e.zeichen:='Cm';
                 97   : i.e.zeichen:='Bk';
                 98   : i.e.zeichen:='Cf';
                 99   : i.e.zeichen:='Es';
                 100  : i.e.zeichen:='Fm';
                 101  : i.e.zeichen:='Md';
                 102  : i.e.zeichen:='No';
                 103  : i.e.zeichen:='Lr';
                 104  : i.e.zeichen:='Rf';
                 105  : i.e.zeichen:='Db';
              END;
    END;

    PROCEDURE MKBELE (ozahl:byte);
    BEGIN     IF (ozahl>2) THEN i.s.bele[1]:=2;

              IF (ozahl>9) THEN i.s.bele[2]:=8;

              IF (ozahl>28) THEN i.s.bele[3]:=18;

              IF (ozahl>69) THEN i.s.bele[4]:=32;

              IF (ozahl>87) THEN i.s.bele[7]:=2;

              IF (ozahl>0) and (ozahl<3) THEN BEGIN i.s.n:=1;
                                                    i.s.bele[1]:=ozahl;
                                              END;

              IF (ozahl>2) and (ozahl<11) THEN BEGIN i.s.n:=2;
                                                     i.s.bele[2]:=ozahl-2;
                                               END;

              IF (ozahl>10) and (ozahl<19) THEN BEGIN i.s.n:=3;
                                                      i.s.bele[3]:=ozahl-10;
                                                END;

              IF (ozahl>18) and (ozahl<21) THEN BEGIN i.s.n:=4;
                                                      i.s.bele[3]:=8;
                                                      i.s.bele[4]:=ozahl-18;
                                                END;

              IF (ozahl>20) and (ozahl<24) THEN BEGIN i.s.n:=4;
                                                      i.s.bele[3]:=ozahl-12;
                                                      i.s.bele[4]:=2;
                                                END;

              IF (ozahl=24) THEN BEGIN i.s.n:=4;
                                       i.s.bele[3]:=13;
                                       i.s.bele[4]:=1;
                                 END;

              IF (ozahl>24) and (ozahl<29) THEN BEGIN i.s.n:=4;
                                                      i.s.bele[3]:=ozahl-12;
                                                      i.s.bele[4]:=2;
                                                END;

              IF (ozahl>28) and (ozahl<37) THEN BEGIN i.s.n:=4;
                                                      i.s.bele[4]:=ozahl-28;
                                                END;

              IF (ozahl>36) and (ozahl<39) THEN BEGIN i.s.n:=5;
                                                      i.s.bele[4]:=8;
                                                      i.s.bele[5]:=ozahl-36;
                                                END;

              IF (ozahl>38) and (ozahl<41) THEN BEGIN i.s.n:=5;
                                                      i.s.bele[4]:=ozahl-30;
                                                      i.s.bele[5]:=2;
                                                END;

              IF (ozahl>40) and (ozahl<46) THEN BEGIN i.s.n:=5;
                                                      i.s.bele[4]:=ozahl-29;
                                                      i.s.bele[5]:=1;
                                                END;

              IF (ozahl=46) THEN BEGIN i.s.n:=4;
                                       i.s.bele[4]:=18;
                                 END;

              IF (ozahl>46) and (ozahl<55) THEN BEGIN i.s.n:=5;
                                                      i.s.bele[4]:=18;
                                                      i.s.bele[5]:=ozahl-46;
                                                END;

              IF (ozahl>54) and (ozahl<57) THEN BEGIN i.s.n:=6;
                                                      i.s.bele[4]:=18;
                                                      i.s.bele[5]:=8;
                                                      i.s.bele[6]:=ozahl-54;
                                                END;

              IF (ozahl=57) or (ozahl=64) THEN BEGIN i.s.n:=6;
                                                     i.s.bele[4]:=ozahl-39;
                                                     i.s.bele[5]:=9;
                                                     i.s.bele[6]:=2;
                                               END;

              IF ((ozahl>57) and (ozahl<64)) or ((ozahl>64) and (ozahl<71))
                                              THEN BEGIN i.s.n:=6;
                                                         i.s.bele[4]:=ozahl-38;
                                                         i.s.bele[5]:=8;
                                                         i.s.bele[6]:=2;
                                                   END;

              IF (ozahl=64) THEN BEGIN i.s.n:=6;
                                       i.s.bele[4]:=25;
                                       i.s.bele[5]:=9;
                                       i.s.bele[6]:=2;
                                 END;

              IF (ozahl>70) and (ozahl<78) THEN BEGIN i.s.n:=6;
                                                      i.s.bele[5]:=ozahl-62;
                                                      i.s.bele[6]:=2;
                                                END;

              IF (ozahl>77) and (ozahl<80) THEN BEGIN i.s.n:=6;
                                                      i.s.bele[5]:=ozahl-61;
                                                      i.s.bele[6]:=1;
                                                END;

              IF (ozahl>79) and (ozahl<87) THEN BEGIN i.s.n:=6;
                                                      i.s.bele[5]:=18;
                                                      i.s.bele[6]:=ozahl-78;
                                                END;

              IF (ozahl>86) and (ozahl<89) THEN BEGIN i.s.n:=7;
                                                      i.s.bele[5]:=18;
                                                      i.s.bele[6]:=8;
                                                      i.s.bele[7]:=ozahl-86;
                                                END;

              IF (ozahl>88) and (ozahl<91) THEN BEGIN i.s.n:=7;
                                                      i.s.bele[5]:=18;
                                                      i.s.bele[6]:=ozahl-80;
                                                END;

              IF ((ozahl>90) and (ozahl<94)) or (ozahl=96)
                                           THEN BEGIN i.s.n:=7;
                                                      i.s.bele[5]:=ozahl-71;
                                                      i.s.bele[6]:=9;
                                                END;

              IF (ozahl>93) and (ozahl<96) THEN BEGIN i.s.n:=7;
                                                      i.s.bele[5]:=ozahl-70;
                                                      i.s.bele[6]:=8;
                                                END;

              IF (ozahl>96) and (ozahl<103) THEN BEGIN i.s.n:=7;
                                                       i.s.bele[5]:=ozahl-70;
                                                       i.s.bele[6]:=8;
                                                 END;

             IF (ozahl>102) and (ozahl<106) THEN BEGIN i.s.n:=7;
                                                       i.s.bele[5]:=32;
                                                       i.s.bele[6]:=ozahl-94;
                                                 END;
    END;

    BEGIN     Assign (u,'install.cfg');
              Reset (u);
              Read (u,t);
              Close (u);

              clrscr;

              FOR ozahl:=1 TO 105 DO
                  BEGIN INTSTR(ozahl,zstr);

                        assign (h,t.info + zstr + '.pse');
                        write (t.info + zstr + '.pse');
                        rewrite (h);
                        reset (h);

                        i.e.ozahl:=ozahl;
                        MKELEMENT(ozahl);
                        MKBELE(ozahl);

                        write (h,i);
                        close (h);

                        Writeln ('.......Erstellt');
                  END;
                  readkey;
    END.