Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 28.80 KB | None | 0 0
  1. program PPKv4;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils,
  7.   Console,
  8.   DateUtils;
  9.  
  10. type  typ_rok = ^integer;
  11. var
  12. mie,dzi,god,rok,min: typ_rok;
  13. liczba, popr_wart,i,l,ln,z:integer;
  14. wyjscie,nazwa,godzina,s,ns,ns1,s1: String;
  15. obecny,nowy:text;
  16. zdarzenie,wy1,wy:ansistring;
  17. today: TDateTime;
  18. napis:char;
  19. begin
  20.   popr_wart:=0;   //wprowadzenie nazwy pliku
  21.   repeat
  22.   writeln('Wprowadz nazwe pliku, np. terminarz.txt.');
  23.   readln(nazwa);
  24.   if fileexists(nazwa)=true then
  25.   begin
  26.       clrscr;
  27.       writeln('Wybrano plik ',nazwa,'.');
  28.       popr_wart:=1;
  29.   end
  30.   else
  31.   begin
  32.       clrscr;
  33.       writeln('Plik o nazwie ', nazwa,' nie istnieje. Wpisz ponownie.');
  34.   end;
  35.   until popr_wart=1;     //koniec wpprowadzania nazwy pliku
  36.   repeat
  37.   clrscr;    //wraca od poczatku
  38.   writeln('Co chcesz zrobic?');             //opcje do wybrania
  39.   writeln('1. Dodaj zdarzenie.');
  40.   writeln('2. Wydarzenie na dzis.');
  41.   writeln('3. Wydarzenie na najblizsze 7 dni.');
  42.   writeln('4. Wydarzenie na najbizsze 30 dni.');
  43.   writeln;
  44.   writeln('0. Wyjdz.');
  45.   writeln;
  46.   writeln;
  47.   popr_wart:=0;
  48.   readln(napis);
  49.   clrscr;
  50.   if (napis = '0') or (napis = '1') or (napis = '2') or (napis = '3') or (napis = '4') then liczba:=strtoint(napis);
  51.     case liczba of
  52.     0 : begin                               //wyjsce z programu
  53.             writeln('Na pewno chcesz wyjsc?');
  54.             writeln('TAK: ESC.');
  55.             writeln('NIE: Dowolny przcisk');
  56.             if  readkey = chr(27) then
  57.             begin
  58.                 writeln('Dowidzenia :).');
  59.                 popr_wart:=1;
  60.             end;
  61.             clrscr;
  62.         end;
  63.     1 : begin                              //dodaj nowe zdarzenie
  64.               writeln('Dodaj nowe zdarzenie.');
  65.               writeln;
  66.               writeln('Zmien zadanie: ESC.');
  67.               writeln('Kontynuluj: dowolny przycisk.');
  68.               writeln;
  69.               if readkey = chr(27) then
  70.                   begin
  71.                   clrscr;
  72.                   end
  73.               else
  74.                   begin
  75.                       repeat        //zmiana daty
  76.                       begin
  77.                           repeat
  78.                           s:='';
  79.                           clrscr;                                 //Wprowadzanie daty
  80.                           writeln('Wpisz rok.');
  81.                           new(rok);
  82.                           readln(s);
  83.                           if (s >= '1990') and (s <='2200') then
  84.                           begin
  85.                             rok^:=strtoint(s);
  86.                             s:='';
  87.                             writeln;
  88.                             writeln('Wpisz miesiac.');
  89.                             readln(s);
  90.                             new(mie);
  91.                             if (s = '0') or (s ='1') or (s ='2')  or (s ='3')  or (s ='4')  or (s ='5')  or (s ='6')  or (s ='7')  or (s ='8')  or (s ='9')  or (s ='10')  or (s ='11')  or (s ='12')  then
  92.                             begin
  93.                               mie^:=strtoint(s);
  94.                               writeln;
  95.                               writeln('Wpisz dzien.');
  96.                               s:='';
  97.                               readln(s);
  98.                               if (s = '0') or (s ='1') or (s ='2')  or (s ='3')  or (s ='4')  or (s ='5')  or (s ='6')  or (s ='7')  or (s ='8')  or (s ='9')  or (s ='10')  or
  99.                               (s = '11') or (s ='12') or (s ='13')  or (s ='14')  or (s ='15')  or (s ='16')  or (s ='17')  or (s ='18')  or (s ='19')  or (s ='20')  or
  100.                               (s ='21') or (s ='22')  or (s ='23')  or (s ='24')  or (s ='25')  or (s ='26')  or (s ='27')  or (s ='28')  or (s ='29')  or (s ='30')  or
  101.                               (s='31') then
  102.                               begin
  103.                                 new(dzi);
  104.                                 dzi^:=strtoint(s);
  105.                                 popr_wart:=1;
  106.                                 s:='';
  107.                               end
  108.                               else
  109.                               begin
  110.                                   writeln('Zla wartosc dnia.');
  111.                                   readln;
  112.                               end
  113.                             end
  114.                             else
  115.                             begin
  116.                                 writeln('Zla wartosc miesiaca.');
  117.                                 readln;
  118.                             end;
  119.                           end
  120.                           else
  121.                           begin
  122.                               writeln('Zla wartosc roku.');
  123.                               readln;
  124.                           end;
  125.                           until popr_wart=1;
  126.                           popr_wart:=0;
  127.                           writeln;
  128.                           writeln('Wprowadziles date: ', rok^,'-',mie^,'-',dzi^,'.');
  129.                           writeln;
  130.                           writeln('Zmien date: ESC.');
  131.                           writeln('Kontynuluj: dowolny przycisk.');
  132.                           if readkey = chr(27) then clrscr
  133.                           else
  134.                           begin
  135.                               writeln;
  136.                               if (IsValidDate(rok^, mie^, dzi^))=TRUE     //sprawdzanie daty
  137.                               then
  138.                               begin
  139.                                   wyjscie:=inttostr(rok^) + '-' + inttostr(mie^) + '-' + inttostr(dzi^);
  140.                                   clrscr;
  141.                                   repeat
  142.                                   begin
  143.                                     repeat
  144.                                     begin
  145.                                       s:='';
  146.                                       clrscr;
  147.                                       writeln('Wpisz godzine.');    //wprowadz godzine
  148.                                       new(god);
  149.                                       readln(s);
  150.                                       if (s = '0') or (s ='1') or (s ='2')  or (s ='3')  or (s ='4')  or (s ='5')  or (s ='6')  or (s ='7')  or (s ='8')  or (s ='9')  or (s ='10')  or
  151.                               (s = '11') or (s ='12') or (s ='13')  or (s ='14')  or (s ='15')  or (s ='16')  or (s ='17')  or (s ='18')  or (s ='19')  or (s ='20')  or
  152.                               (s ='21') or (s ='22')  or (s ='23')  or (s ='24')  then
  153.                                       begin
  154.                                           writeln;
  155.                                           god^:=strtoint(s);
  156.                                           s:='';
  157.                                           writeln('Wpisz minuty.');    //wprowadz godzine
  158.                                           new(min);
  159.                                           readln(s);
  160.                                           if (s >= '0') and (s <='59') then
  161.                                           begin
  162.                                               min^:=strtoint(s);
  163.                                               s:='';
  164.                                               popr_wart:=1;
  165.                                           end
  166.                                           else
  167.                                           begin
  168.                                               writeln('Zla wartosc minut.');
  169.                                               readln;
  170.                                           end;
  171.                                       end
  172.                                       else
  173.                                       begin
  174.                                           writeln('Zla wartosc godziny');
  175.                                           readln;
  176.                                       end
  177.                                     end;
  178.                                     until popr_wart=1
  179.                                   end;
  180.                                   popr_wart:=0;       //zmien godzine
  181.                                   godzina:= inttostr(god^) + ':' + inttostr(min^);
  182.                                   clrscr;
  183.                                   writeln('Chcesz zapisac godzine: ',godzina, '?');
  184.                                   writeln;
  185.                                   writeln('Zmien godzine: ESC.');
  186.                                   writeln('Kontynuluj: dowolny przcisk.');
  187.                                   if readkey = chr(27) then  begin clrscr;   end
  188.                                   else
  189.                                   begin
  190.                                       if (IsValidTime(god^, min^,0,0))=TRUE then      //sprawdza poprawnosc godziny
  191.                                       begin
  192.                                           repeat           //wprowadz wydarzenie
  193.                                           clrscr;
  194.                                           writeln('Godzina: ',godzina,' jest poprawna.');;
  195.                                           wyjscie:=wyjscie+' '+godzina;
  196.                                           writeln('Wpisz tekst wydarzenia.');
  197.                                           readln(zdarzenie);
  198.                                           wyjscie:=wyjscie + '| ' + zdarzenie;
  199.                                           writeln;
  200.                                           writeln('Chcesz zapisac:"', wyjscie, '"?');
  201.                                           writeln;
  202.                                           writeln('Zmien tekst wydarzenia: ESC.');
  203.                                           writeln('Kontynuluj: dowolny przcisk.');
  204.                                           if readkey = chr(27) then clrscr
  205.                                           else
  206.                                           begin
  207.                                               assign(obecny,nazwa);
  208.                                               append(obecny);
  209.                                               writeln(obecny, wyjscie);
  210.                                               close(obecny);
  211.                                               writeln('Zapisano: "', wyjscie ,'"');
  212.                                               readln;                          //zapisywanie + sortowanie
  213.                                               ns:='';
  214.                                               wy:='';
  215.                                               popr_wart:=0;
  216.                                               i:=1;
  217.                                               assign(nowy, 'cache.txt');
  218.                                               rewrite(nowy);
  219.                                               assign(obecny,nazwa);
  220.                                               reset(obecny);
  221.                                               l:=0;
  222.                                               repeat
  223.                                               begin                  //liczy linijki
  224.                                                   l:=l+1;
  225.                                                   readln(obecny,s);
  226.                                               end;
  227.                                               until eof(obecny);
  228.                                               close(obecny);
  229.                                               assign(obecny,nazwa);
  230.                                               reset(obecny);
  231.                                               ln:=l;
  232.                                               z:=l;
  233.                                               if z <> 1 then
  234.                                               begin
  235.                                                   repeat
  236.                                                   begin
  237.                                                       if l=1 then
  238.                                                       begin
  239.                                                           readln(obecny,s);
  240.                                                       end
  241.                                                       else
  242.                                                       begin                  //liczy linijki
  243.                                                           ln:=ln-1;
  244.                                                           readln(obecny,s);
  245.                                                       end;
  246.                                                   end;
  247.                                                   until ln=0;
  248.                                                   begin
  249.                                                       begin
  250.                                                           while s[i]<>'|' do
  251.                                                           begin                    //data
  252.                                                               ns:=ns+s[i];
  253.                                                               i:=i+1;
  254.                                                           end;
  255.                                                           while i <> length(s)+1 do
  256.                                                           begin                     //tekst
  257.                                                               wy:=wy+s[i];
  258.                                                               i:=i+1;
  259.                                                           end;
  260.                                                       end;
  261.                                                   close(obecny);                //pierwszy element
  262.                                                   assign(obecny,nazwa);
  263.                                                   reset(obecny);
  264.                                                   repeat
  265.                                                   begin
  266.                                                       ns1:='';
  267.                                                       wy1:='';
  268.                                                       i:=1;
  269.                                                       readln(obecny, s1);
  270.                                                       while s1[i]<>'|' do       //kolejny element
  271.                                                       begin
  272.                                                           ns1:=ns1+s1[i];         //data elementu
  273.                                                           i:=i+1;
  274.                                                       end;
  275.                                                       while i <> length(s1)+1 do     //wydarzenie elementu
  276.                                                       begin
  277.                                                           wy1:=wy1+s1[i];
  278.                                                           i:=i+1;
  279.                                                       end;
  280.                                                       l:=l-1;
  281.                                                   end;
  282.                                                   if strtodatetime(ns) >= strtodatetime(ns1) then
  283.                                                   begin
  284.                                                       writeln(nowy,ns1,wy1);
  285.                                                       if ((popr_wart=0) and (l=1)) then
  286.                                                       begin
  287.                                                           writeln(nowy,ns,wy);
  288.                                                       end;
  289.                                                   end;
  290.                                                   if  strtodatetime(ns) < strtodatetime(ns1) then
  291.                                                   begin
  292.                                                       if popr_wart=0 then
  293.                                                       begin
  294.                                                           writeln(nowy,ns,wy);
  295.                                                           popr_wart:=1;
  296.                                                       end;
  297.                                                           if popr_wart=1 then
  298.                                                           begin
  299.                                                           writeln(nowy,ns1,wy1);
  300.                                                           end;
  301.                                                       end;
  302.                                                       until l=1;
  303.                                                   end;
  304.                                               end;
  305.                                               if z=1 then
  306.                                               begin
  307.                                                   close(obecny);
  308.                                                   assign(obecny,nazwa);
  309.                                                   reset(obecny);
  310.                                                   begin
  311.                                                       while s[i]<>'|' do
  312.                                                       begin                    //data
  313.                                                           ns:=ns+s[i];
  314.                                                           i:=i+1;
  315.                                                       end;
  316.                                                       while i <> length(s)+1 do
  317.                                                       begin                     //tekst
  318.                                                           wy:=wy+s[i];
  319.                                                           i:=i+1;
  320.                                                       end;
  321.                                                   end;
  322.                                                   writeln(nowy,ns,wy);
  323.                                               end;
  324.                                               close(obecny);
  325.                                               deletefile(nazwa);
  326.                                               close(nowy);
  327.                                               renamefile('cache.txt', nazwa);
  328.                                               writeln('koniec');
  329.                                           end;
  330.                                           popr_wart:=1;
  331.                                           until popr_wart=1  //wydarzenie
  332.                                       end
  333.                                       else
  334.                                       begin
  335.                                           clrscr;
  336.                                           writeln('Godzina: ',godzina,' jest nie poprawna. Wpisz jeszcze raz.');
  337.                                       end;
  338.                                   end;
  339.                                   until popr_wart=1;      //koniec godziny
  340.                               end
  341.                               else
  342.                               begin
  343.                                   clrscr;
  344.                                   writeln('Taka data nie istnieje: ', rok^,'.',mie^,'.',dzi^,'. Wpowadz ponownie date.');
  345.                                   readln;
  346.                               end;
  347.                           end;
  348.                       end;
  349.                       until popr_wart=1;       //zmiana daty
  350.                       popr_wart:=0;
  351.                       clrscr;
  352.                       dispose(rok);
  353.                       dispose(mie);
  354.                       dispose(dzi);
  355.                       dispose(god);
  356.                       dispose(min);
  357.                       end;
  358.                   end;
  359.     2 : begin
  360.               writeln('Wyswietlnic wydarzenia na dzis.');
  361.               writeln('Zmien zadanie: ESC.');
  362.               writeln('Kontynuluj: dowolny przycisk.');
  363.               writeln;
  364.               if readkey = chr(27) then
  365.               begin
  366.                   clrscr;
  367.               end
  368.               else
  369.               begin
  370.                   assign(obecny,nazwa);
  371.                   reset(obecny);
  372.                   l:=0;
  373.                   wy:='';
  374.                   readln(obecny,s);
  375.                   if s = wy then
  376.                   begin
  377.                       clrscr;
  378.                       writeln('W pliku nie ma zadnych danych.');
  379.                       readln;
  380.                   end
  381.                   else
  382.                   begin
  383.                       close(obecny);
  384.                       assign(obecny,nazwa);
  385.                       reset(obecny);
  386.                       repeat
  387.                       begin                  //liczy linijki
  388.                           l:=l+1;
  389.                           readln(obecny,s);
  390.                       end;
  391.                       until eof(obecny);
  392.                       if l > 0 then
  393.                       begin
  394.                           clrscr;
  395.                           today:= Now;
  396.                           writeln;
  397.                           writeln('Plany na najblizsze dzis: '+DateToStr(today));
  398.                           writeln('-----------------------');
  399.                           writeln;
  400.                           popr_wart:=0;
  401.                           close(obecny);
  402.                           assign(obecny,nazwa);
  403.                           reset(obecny);
  404.                           repeat
  405.                           begin
  406.                               ns:='';
  407.                               wy:='';
  408.                               i:=1;
  409.                               readln(obecny, s);
  410.                               while s[i]<>' ' do       //kolejny element
  411.                               begin
  412.                                   ns:=ns+s[i];         //data elementu
  413.                                   i:=i+1;
  414.                               end;
  415.                               while i <> length(s)+1 do     //wydarzenie elementu
  416.                               begin
  417.                                   wy:=wy+s[i];
  418.                                   i:=i+1;
  419.                               end;
  420.                               l:=l-1;
  421.                               if (datetostr(StrToDate(ns))) = DateToStr(today) then
  422.                               begin
  423.                                   writeln(ns,wy);
  424.                               end;
  425.                           end;
  426.                           until l=0;
  427.                           close(obecny);
  428.                           writeln;
  429.                           writeln('-----------------------');
  430.                           writeln('Koniec wydarzen na najblizsze 7 dni.');
  431.                           readln;
  432.                       end;
  433.                   end;
  434.               end;
  435.         end;
  436.     3 : begin
  437.               writeln('Wyswietlnic wydarzenia na dzis.');
  438.               writeln('Zmien zadanie: ESC.');
  439.               writeln('Kontynuluj: dowolny przycisk.');
  440.               writeln;
  441.               if readkey = chr(27) then
  442.               begin
  443.                   clrscr;
  444.               end
  445.               else
  446.               begin
  447.                   assign(obecny,nazwa);
  448.                   reset(obecny);
  449.                   l:=0;
  450.                   wy:='';
  451.                   readln(obecny,s);
  452.                   if s = wy then
  453.                   begin
  454.                       clrscr;
  455.                       writeln('W pliku nie ma zadnych danych.');
  456.                       readln;
  457.                   end
  458.                   else
  459.                   begin
  460.                       close(obecny);
  461.                       assign(obecny,nazwa);
  462.                       reset(obecny);
  463.                       repeat
  464.                       begin                  //liczy linijki
  465.                           l:=l+1;
  466.                           readln(obecny,s);
  467.                       end;
  468.                       until eof(obecny);
  469.                       if l > 0 then
  470.                       begin
  471.                           clrscr;
  472.                           today:= Now;
  473.                           writeln;
  474.                           writeln('Plany na najblizsze 7 dni od dnia: '+DateToStr(today));
  475.                           writeln('-----------------------');
  476.                           writeln;
  477.                           popr_wart:=0;
  478.                           close(obecny);
  479.                           assign(obecny,nazwa);
  480.                           reset(obecny);
  481.                           repeat
  482.                           begin
  483.                               ns:='';
  484.                               wy:='';
  485.                               i:=1;
  486.                               readln(obecny, s);
  487.                               while s[i]<>' ' do       //kolejny element
  488.                               begin
  489.                                   ns:=ns+s[i];         //data elementu
  490.                                   i:=i+1;
  491.                               end;
  492.                               while i <> length(s)+1 do     //wydarzenie elementu
  493.                               begin
  494.                                   wy:=wy+s[i];
  495.                                   i:=i+1;
  496.                               end;
  497.                               l:=l-1;
  498.                           end;
  499.                           ln:=0;
  500.                           repeat
  501.                           begin
  502.                               if (datetostr(StrToDate(ns))) = DateToStr(today+ln) then
  503.                               begin
  504.                                   writeln(ns,wy);
  505.                               end;
  506.                               ln:=ln+1;
  507.                           end;
  508.                           until ln=8
  509.                           until l=0;
  510.                           close(obecny);
  511.                           writeln;
  512.                           writeln('-----------------------');
  513.                           writeln('Koniec wydarzen na najblizsze 7 dni.');
  514.                           readln;
  515.                       end;
  516.                   end;
  517.               end;
  518.         end;
  519.     4 : begin
  520.               begin
  521.               writeln('Wyswietlnic wydarzenia na 30 dni.');
  522.               writeln('Zmien zadanie: ESC.');
  523.               writeln('Kontynuluj: dowolny przycisk.');
  524.               writeln;
  525.               if readkey = chr(27) then
  526.               begin
  527.                   clrscr;
  528.               end
  529.               else
  530.               begin
  531.                   assign(obecny,nazwa);
  532.                   reset(obecny);
  533.                   l:=0;
  534.                   wy:='';
  535.                   readln(obecny,s);
  536.                   if s = wy then
  537.                   begin
  538.                       clrscr;
  539.                       writeln('W pliku nie ma zadnych danych.');
  540.                       readln;
  541.                   end
  542.                   else
  543.                   begin
  544.                       close(obecny);
  545.                       assign(obecny,nazwa);
  546.                       reset(obecny);
  547.                       repeat
  548.                       begin                  //liczy linijki
  549.                           l:=l+1;
  550.                           readln(obecny,s);
  551.                       end;
  552.                       until eof(obecny);
  553.                       if l > 0 then
  554.                       begin
  555.                           clrscr;
  556.                           today:= Now;
  557.                           writeln;
  558.                           writeln('Plany na najblizsze 30 dni od dnia: '+DateToStr(today));
  559.                           writeln('-----------------------');
  560.                           writeln;
  561.                           popr_wart:=0;
  562.                           close(obecny);
  563.                           assign(obecny,nazwa);
  564.                           reset(obecny);
  565.                           repeat
  566.                           begin
  567.                               ns:='';
  568.                               wy:='';
  569.                               i:=1;
  570.                               readln(obecny, s);
  571.                               while s[i]<>' ' do       //kolejny element
  572.                               begin
  573.                                   ns:=ns+s[i];         //data elementu
  574.                                   i:=i+1;
  575.                               end;
  576.                               while i <> length(s)+1 do     //wydarzenie elementu
  577.                               begin
  578.                                   wy:=wy+s[i];
  579.                                   i:=i+1;
  580.                               end;
  581.                               l:=l-1;
  582.                           end;
  583.                           ln:=0;
  584.                           repeat
  585.                           begin
  586.                               if (datetostr(StrToDate(ns))) = DateToStr(today+ln) then
  587.                               begin
  588.                                   writeln(ns,wy);
  589.                               end;
  590.                               ln:=ln+1;
  591.                           end;
  592.                           until ln=31;
  593.                           until l=0;
  594.                           close(obecny);
  595.                           writeln;
  596.                           writeln('-----------------------');
  597.                           writeln('Koniec wydarzen na najblizsze 30 dni.');
  598.                           readln;
  599.                       end;
  600.                   end;
  601.               end;
  602.         end;
  603.         end;
  604.     else
  605.         begin
  606.         writeln('Podana zla wartosc: ', napis,'. Wpisz jeszcze raz.');
  607.         writeln;
  608.         writeln;
  609.         end;
  610.     end;
  611.     until popr_wart=1;    //wraca do poczatku
  612. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement