przyklad pliku wejsciowego:
Jan Biedacz;33001.45
Anna Normalna;42345
Wojciech Bogaty;54321.33
Jozef Mistake;56934.3f
}
program podatki_plik;
uses crt;
const kw_prog1 = 35000;
kw_prog2 = 50000;
prog1 = 0.19;
prog2 = 0.30;
prog3 = 0.40;
var plik_wej,plik_wyj:text;
imie_i_nazwisko,sciezka,sciezka_wyj,wiersz,prog:string;
kwota_brutto,kwota_netto,podatek:real;
blad:boolean;
kod_bledu:integer;
begin
repeat
blad:=false;
clrscr;
write('Podaj lokalizacje pliku z danymi wejsciowymi : ');
readln(sciezka);
assign(plik_wej,sciezka);
{$i-}
reset(plik_wej);
{$i+}
if ioresult<>0 then
writeln('Nie znalieziono pliku w ',sciezka);
writeln;
writeln('N - nowa lokalizacja K - Koniec programu');
case upcase(readkey) of
'K':halt;
'N':blad:=true;
else blad:=true;
end;
until not blad;
{umieszczenie pliku z wynikiem w tej samej lokalizacji co pliku z danymi}
while pos('\',sciezka)>0 do
sciezka_wyj:=sciezka_wyj+copy(sciezka,1,pos('\',sciezka));
delete(sciezka,1,pos('\',sciezka));
sciezka_wyj:=sciezka_wyj+'wynik.txt';
assign(plik_wyj,sciezka_wyj);
rewrite(plik_wyj); {plik z wynikami zawsze jest nadpisywany}
{obliczanie podatkow dla kazdego wiersza}
while not eof(plik_wej) do
readln(plik_wej,wiersz);
imie_i_nazwisko:=copy(wiersz,1,pos(';',wiersz)-1);
delete(wiersz,1,pos(';',wiersz));
val(wiersz,kwota_brutto,kod_bledu);
if kod_bledu<>0 then
writeln(plik_wyj,imie_i_nazwisko,';niepoprawna kwota brutto')
else
if kwota_brutto<=kw_prog1 then
podatek:=kwota_brutto*prog1;
kwota_netto:=kwota_brutto-podatek;
prog:='19%';
if (kwota_brutto>kw_prog1)and(kwota_brutto<=kw_prog2)then
podatek:=kwota_brutto*prog2;
prog:='30%';
if (kwota_brutto>kw_prog2)then
podatek:=kwota_brutto*prog3;
prog:='40%';
writeln(plik_wyj,imie_i_nazwisko,';',kwota_brutto:1:2,';',kwota_netto:1:2,';',podatek:1:2,';',prog);
{zamkniecie plikow}
close(plik_wej);
close(plik_wyj);
writeln('Wyniki zostaly zapisane w pliku : ',sciezka_wyj);
writeln('K - koniec programu');
until upcase(readkey)='K';
end.
kilofnr1