Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program PPKv4;
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- Console,
- DateUtils;
- type typ_rok = ^integer;
- var
- mie,dzi,god,rok,min: typ_rok;
- liczba, popr_wart,i,l,ln,z:integer;
- wyjscie,nazwa,godzina,s,ns,ns1,s1: String;
- obecny,nowy:text;
- zdarzenie,wy1,wy:ansistring;
- today: TDateTime;
- napis:char;
- begin
- popr_wart:=0; //wprowadzenie nazwy pliku
- repeat
- writeln('Wprowadz nazwe pliku, np. terminarz.txt.');
- readln(nazwa);
- if fileexists(nazwa)=true then
- begin
- clrscr;
- writeln('Wybrano plik ',nazwa,'.');
- popr_wart:=1;
- end
- else
- begin
- clrscr;
- writeln('Plik o nazwie ', nazwa,' nie istnieje. Wpisz ponownie.');
- end;
- until popr_wart=1; //koniec wpprowadzania nazwy pliku
- repeat
- clrscr; //wraca od poczatku
- writeln('Co chcesz zrobic?'); //opcje do wybrania
- writeln('1. Dodaj zdarzenie.');
- writeln('2. Wydarzenie na dzis.');
- writeln('3. Wydarzenie na najblizsze 7 dni.');
- writeln('4. Wydarzenie na najbizsze 30 dni.');
- writeln;
- writeln('0. Wyjdz.');
- writeln;
- writeln;
- popr_wart:=0;
- readln(napis);
- clrscr;
- if (napis = '0') or (napis = '1') or (napis = '2') or (napis = '3') or (napis = '4') then liczba:=strtoint(napis);
- case liczba of
- 0 : begin //wyjsce z programu
- writeln('Na pewno chcesz wyjsc?');
- writeln('TAK: ESC.');
- writeln('NIE: Dowolny przcisk');
- if readkey = chr(27) then
- begin
- writeln('Dowidzenia :).');
- popr_wart:=1;
- end;
- clrscr;
- end;
- 1 : begin //dodaj nowe zdarzenie
- writeln('Dodaj nowe zdarzenie.');
- writeln;
- writeln('Zmien zadanie: ESC.');
- writeln('Kontynuluj: dowolny przycisk.');
- writeln;
- if readkey = chr(27) then
- begin
- clrscr;
- end
- else
- begin
- repeat //zmiana daty
- begin
- repeat
- s:='';
- clrscr; //Wprowadzanie daty
- writeln('Wpisz rok.');
- new(rok);
- readln(s);
- if (s >= '1990') and (s <='2200') then
- begin
- rok^:=strtoint(s);
- s:='';
- writeln;
- writeln('Wpisz miesiac.');
- readln(s);
- new(mie);
- 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
- begin
- mie^:=strtoint(s);
- writeln;
- writeln('Wpisz dzien.');
- s:='';
- readln(s);
- 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') 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
- (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
- (s='31') then
- begin
- new(dzi);
- dzi^:=strtoint(s);
- popr_wart:=1;
- s:='';
- end
- else
- begin
- writeln('Zla wartosc dnia.');
- readln;
- end
- end
- else
- begin
- writeln('Zla wartosc miesiaca.');
- readln;
- end;
- end
- else
- begin
- writeln('Zla wartosc roku.');
- readln;
- end;
- until popr_wart=1;
- popr_wart:=0;
- writeln;
- writeln('Wprowadziles date: ', rok^,'-',mie^,'-',dzi^,'.');
- writeln;
- writeln('Zmien date: ESC.');
- writeln('Kontynuluj: dowolny przycisk.');
- if readkey = chr(27) then clrscr
- else
- begin
- writeln;
- if (IsValidDate(rok^, mie^, dzi^))=TRUE //sprawdzanie daty
- then
- begin
- wyjscie:=inttostr(rok^) + '-' + inttostr(mie^) + '-' + inttostr(dzi^);
- clrscr;
- repeat
- begin
- repeat
- begin
- s:='';
- clrscr;
- writeln('Wpisz godzine.'); //wprowadz godzine
- new(god);
- readln(s);
- 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') 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
- (s ='21') or (s ='22') or (s ='23') or (s ='24') then
- begin
- writeln;
- god^:=strtoint(s);
- s:='';
- writeln('Wpisz minuty.'); //wprowadz godzine
- new(min);
- readln(s);
- if (s >= '0') and (s <='59') then
- begin
- min^:=strtoint(s);
- s:='';
- popr_wart:=1;
- end
- else
- begin
- writeln('Zla wartosc minut.');
- readln;
- end;
- end
- else
- begin
- writeln('Zla wartosc godziny');
- readln;
- end
- end;
- until popr_wart=1
- end;
- popr_wart:=0; //zmien godzine
- godzina:= inttostr(god^) + ':' + inttostr(min^);
- clrscr;
- writeln('Chcesz zapisac godzine: ',godzina, '?');
- writeln;
- writeln('Zmien godzine: ESC.');
- writeln('Kontynuluj: dowolny przcisk.');
- if readkey = chr(27) then begin clrscr; end
- else
- begin
- if (IsValidTime(god^, min^,0,0))=TRUE then //sprawdza poprawnosc godziny
- begin
- repeat //wprowadz wydarzenie
- clrscr;
- writeln('Godzina: ',godzina,' jest poprawna.');;
- wyjscie:=wyjscie+' '+godzina;
- writeln('Wpisz tekst wydarzenia.');
- readln(zdarzenie);
- wyjscie:=wyjscie + '| ' + zdarzenie;
- writeln;
- writeln('Chcesz zapisac:"', wyjscie, '"?');
- writeln;
- writeln('Zmien tekst wydarzenia: ESC.');
- writeln('Kontynuluj: dowolny przcisk.');
- if readkey = chr(27) then clrscr
- else
- begin
- assign(obecny,nazwa);
- append(obecny);
- writeln(obecny, wyjscie);
- close(obecny);
- writeln('Zapisano: "', wyjscie ,'"');
- readln; //zapisywanie + sortowanie
- ns:='';
- wy:='';
- popr_wart:=0;
- i:=1;
- assign(nowy, 'cache.txt');
- rewrite(nowy);
- assign(obecny,nazwa);
- reset(obecny);
- l:=0;
- repeat
- begin //liczy linijki
- l:=l+1;
- readln(obecny,s);
- end;
- until eof(obecny);
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- ln:=l;
- z:=l;
- if z <> 1 then
- begin
- repeat
- begin
- if l=1 then
- begin
- readln(obecny,s);
- end
- else
- begin //liczy linijki
- ln:=ln-1;
- readln(obecny,s);
- end;
- end;
- until ln=0;
- begin
- begin
- while s[i]<>'|' do
- begin //data
- ns:=ns+s[i];
- i:=i+1;
- end;
- while i <> length(s)+1 do
- begin //tekst
- wy:=wy+s[i];
- i:=i+1;
- end;
- end;
- close(obecny); //pierwszy element
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin
- ns1:='';
- wy1:='';
- i:=1;
- readln(obecny, s1);
- while s1[i]<>'|' do //kolejny element
- begin
- ns1:=ns1+s1[i]; //data elementu
- i:=i+1;
- end;
- while i <> length(s1)+1 do //wydarzenie elementu
- begin
- wy1:=wy1+s1[i];
- i:=i+1;
- end;
- l:=l-1;
- end;
- if strtodatetime(ns) >= strtodatetime(ns1) then
- begin
- writeln(nowy,ns1,wy1);
- if ((popr_wart=0) and (l=1)) then
- begin
- writeln(nowy,ns,wy);
- end;
- end;
- if strtodatetime(ns) < strtodatetime(ns1) then
- begin
- if popr_wart=0 then
- begin
- writeln(nowy,ns,wy);
- popr_wart:=1;
- end;
- if popr_wart=1 then
- begin
- writeln(nowy,ns1,wy1);
- end;
- end;
- until l=1;
- end;
- end;
- if z=1 then
- begin
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- begin
- while s[i]<>'|' do
- begin //data
- ns:=ns+s[i];
- i:=i+1;
- end;
- while i <> length(s)+1 do
- begin //tekst
- wy:=wy+s[i];
- i:=i+1;
- end;
- end;
- writeln(nowy,ns,wy);
- end;
- close(obecny);
- deletefile(nazwa);
- close(nowy);
- renamefile('cache.txt', nazwa);
- writeln('koniec');
- end;
- popr_wart:=1;
- until popr_wart=1 //wydarzenie
- end
- else
- begin
- clrscr;
- writeln('Godzina: ',godzina,' jest nie poprawna. Wpisz jeszcze raz.');
- end;
- end;
- until popr_wart=1; //koniec godziny
- end
- else
- begin
- clrscr;
- writeln('Taka data nie istnieje: ', rok^,'.',mie^,'.',dzi^,'. Wpowadz ponownie date.');
- readln;
- end;
- end;
- end;
- until popr_wart=1; //zmiana daty
- popr_wart:=0;
- clrscr;
- dispose(rok);
- dispose(mie);
- dispose(dzi);
- dispose(god);
- dispose(min);
- end;
- end;
- 2 : begin
- writeln('Wyswietlnic wydarzenia na dzis.');
- writeln('Zmien zadanie: ESC.');
- writeln('Kontynuluj: dowolny przycisk.');
- writeln;
- if readkey = chr(27) then
- begin
- clrscr;
- end
- else
- begin
- assign(obecny,nazwa);
- reset(obecny);
- l:=0;
- wy:='';
- readln(obecny,s);
- if s = wy then
- begin
- clrscr;
- writeln('W pliku nie ma zadnych danych.');
- readln;
- end
- else
- begin
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin //liczy linijki
- l:=l+1;
- readln(obecny,s);
- end;
- until eof(obecny);
- if l > 0 then
- begin
- clrscr;
- today:= Now;
- writeln;
- writeln('Plany na najblizsze dzis: '+DateToStr(today));
- writeln('-----------------------');
- writeln;
- popr_wart:=0;
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin
- ns:='';
- wy:='';
- i:=1;
- readln(obecny, s);
- while s[i]<>' ' do //kolejny element
- begin
- ns:=ns+s[i]; //data elementu
- i:=i+1;
- end;
- while i <> length(s)+1 do //wydarzenie elementu
- begin
- wy:=wy+s[i];
- i:=i+1;
- end;
- l:=l-1;
- if (datetostr(StrToDate(ns))) = DateToStr(today) then
- begin
- writeln(ns,wy);
- end;
- end;
- until l=0;
- close(obecny);
- writeln;
- writeln('-----------------------');
- writeln('Koniec wydarzen na najblizsze 7 dni.');
- readln;
- end;
- end;
- end;
- end;
- 3 : begin
- writeln('Wyswietlnic wydarzenia na dzis.');
- writeln('Zmien zadanie: ESC.');
- writeln('Kontynuluj: dowolny przycisk.');
- writeln;
- if readkey = chr(27) then
- begin
- clrscr;
- end
- else
- begin
- assign(obecny,nazwa);
- reset(obecny);
- l:=0;
- wy:='';
- readln(obecny,s);
- if s = wy then
- begin
- clrscr;
- writeln('W pliku nie ma zadnych danych.');
- readln;
- end
- else
- begin
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin //liczy linijki
- l:=l+1;
- readln(obecny,s);
- end;
- until eof(obecny);
- if l > 0 then
- begin
- clrscr;
- today:= Now;
- writeln;
- writeln('Plany na najblizsze 7 dni od dnia: '+DateToStr(today));
- writeln('-----------------------');
- writeln;
- popr_wart:=0;
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin
- ns:='';
- wy:='';
- i:=1;
- readln(obecny, s);
- while s[i]<>' ' do //kolejny element
- begin
- ns:=ns+s[i]; //data elementu
- i:=i+1;
- end;
- while i <> length(s)+1 do //wydarzenie elementu
- begin
- wy:=wy+s[i];
- i:=i+1;
- end;
- l:=l-1;
- end;
- ln:=0;
- repeat
- begin
- if (datetostr(StrToDate(ns))) = DateToStr(today+ln) then
- begin
- writeln(ns,wy);
- end;
- ln:=ln+1;
- end;
- until ln=8
- until l=0;
- close(obecny);
- writeln;
- writeln('-----------------------');
- writeln('Koniec wydarzen na najblizsze 7 dni.');
- readln;
- end;
- end;
- end;
- end;
- 4 : begin
- begin
- writeln('Wyswietlnic wydarzenia na 30 dni.');
- writeln('Zmien zadanie: ESC.');
- writeln('Kontynuluj: dowolny przycisk.');
- writeln;
- if readkey = chr(27) then
- begin
- clrscr;
- end
- else
- begin
- assign(obecny,nazwa);
- reset(obecny);
- l:=0;
- wy:='';
- readln(obecny,s);
- if s = wy then
- begin
- clrscr;
- writeln('W pliku nie ma zadnych danych.');
- readln;
- end
- else
- begin
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin //liczy linijki
- l:=l+1;
- readln(obecny,s);
- end;
- until eof(obecny);
- if l > 0 then
- begin
- clrscr;
- today:= Now;
- writeln;
- writeln('Plany na najblizsze 30 dni od dnia: '+DateToStr(today));
- writeln('-----------------------');
- writeln;
- popr_wart:=0;
- close(obecny);
- assign(obecny,nazwa);
- reset(obecny);
- repeat
- begin
- ns:='';
- wy:='';
- i:=1;
- readln(obecny, s);
- while s[i]<>' ' do //kolejny element
- begin
- ns:=ns+s[i]; //data elementu
- i:=i+1;
- end;
- while i <> length(s)+1 do //wydarzenie elementu
- begin
- wy:=wy+s[i];
- i:=i+1;
- end;
- l:=l-1;
- end;
- ln:=0;
- repeat
- begin
- if (datetostr(StrToDate(ns))) = DateToStr(today+ln) then
- begin
- writeln(ns,wy);
- end;
- ln:=ln+1;
- end;
- until ln=31;
- until l=0;
- close(obecny);
- writeln;
- writeln('-----------------------');
- writeln('Koniec wydarzen na najblizsze 30 dni.');
- readln;
- end;
- end;
- end;
- end;
- end;
- else
- begin
- writeln('Podana zla wartosc: ', napis,'. Wpisz jeszcze raz.');
- writeln;
- writeln;
- end;
- end;
- until popr_wart=1; //wraca do poczatku
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement