All pastes #432755 Raw Edit

Roszek

public text v1 · immutable
·published 2007-04-10 12:42 UTC
rendered paste body
program ciupaga;
uses Crt;
const
nazwa2='I:\pliki\pliczekpom.dat';
nazwa='I:\pliki\pliczek.dat';
type
 plik=file of integer;
var p,q:plik;
    odp:char;

procedure dopis (var p:plik);
var a:integer;
begin
     assign(p,nazwa);
     {$I-}
     reset(p);
     {$I+}
     if IOResult=0 then seek(p,filesize(p)) else rewrite(p);
     write('Podaj liczbe: ');
     readln(a);
     write(p,a);
     close(p);
end;


procedure wypis (var p:plik);
var a,i:integer;
begin
     assign(p,nazwa);
     {$I-}
     reset(p);
     {$I+}
     if IOResult=0 then
       begin
            while not eof(p) do
                                   begin
                                      read(p,a);
                                      writeln(a);
                                   end;
       readkey;
       close(p);
       end else write('Plik nie istnieje');

end;


procedure ilosc(var p:plik);
var k,a,s:integer;
begin
     write('Jakiej wartosci poszukiwac?: ');
     readln(k);
     assign(p,nazwa);
     {$I-}
     reset(p);
     {$I+}
     s:=0;
     if IOResult=0 then
        begin
                while not eof(p) do
                                        begin
                                             read(p,a);
                                             if a=k then s:=s+1;
                                         end;


     close(p);
     writeln('W pliku znajduje sie ',s,' liczb(y) ktorych wartosc wynosi ',k);
     end else write('Plik nie istnieje');
     readkey;
end;

procedure usun(var p,q:plik);
var k,a,s:integer;
begin
     write('Jaka liczbe usunac z pliku?');
     readln(k);
     assign(q,nazwa2);
     rewrite(q);
     assign(p,nazwa);
     {$I-}
     reset(p);
     {$I+}
     s:=0;
     if IOResult=0 then
        begin
             while not eof(p) do
                                        begin
                                             read(p,a);
                                             write(q,a);
                                        end;
        close(p);
        close(q);
        rewrite(p);
        reset(q);
        while not eof(q) do
                                begin
                                        read(q,a);
                                        if a<>k then write(p,a) else s:=s+1;
                                end;
        close(p);
        close(q);
        writeln('Usunalem ',s,' liczb(y)');
     end else write('Plik nie istnieje');
     readkey;
end;

procedure menu;
var odp:char;
begin
	ClrScr;
        textcolor(green);
        writeln(' *===========================================*');
        writeln('|| 1 - Dopisywanie liczby do pliku           ||');
        writeln('|| 2 - Wypisanie listy  liczb                ||');
        writeln('|| 3 - Ilosc liczb o podaniej wartosci       ||');
        writeln('|| 4 - Usuwanie podawanej liczby z pliku     ||');
        writeln('|| Esc - Wyjscie                             ||');
        writeln(' *===========================================*');
        textcolor(red);
        writeln;
        writeln('Czego pragniesz?');
        textcolor(7);
	odp:=readkey;
        case odp of
        '1':dopis(p);
        '2':wypis(p);
        '3':ilosc(p);
        '4':usun(p,q);
        #27:halt;
        end;

end;






begin
	repeat menu;
	until false;
end.