Uses bux,Dos, crt; { Procedure Reszveny_idoszerusites; Type modosito_rekord = record modtip : Char; adat : TReszveny; end; Var mod_file : file of modosito_rekord; mod_rek : modosito_rekord; f : file; kimenet : text; i : TReszvenySorszam; s : TReszvenyNev; Begin If ReszvenyNyit then Begin Assign(mod_file,'reszveny.mod'); Reset(mod_file); Assign(kimenet,'reszveny.uj'); ReWrite(kimenet); WriteLn(kimenet,'0 0'); i:=1; s:=MiANevedAranyom(1); If not EOF(mod_file) then Read(mod_file,mod_rek) else mod_rek.adat.sorszam:=0; While (s>'') and not EOF(mod_file) do Begin If mod_rek.adat.sorszam=i then Begin {mod_rek.modtip-et meg lehetne vizsg lni s:=mod_rek.adat.nev; read(mod_file,mod_rek); End; Write(kimenet,i); WriteLn(kimenet,' '+s); i:=i+1; s:=MiANevedAranyom(i); End; While s>'' do Begin Write(kimenet,i); WriteLn(kimenet,' '+s); i:=i+1; s:=MiANevedAranyom(i); End; Close(mod_file); Close(kimenet); ReszvenyZar; Assign(f,'reszveny.txt'); erase(f); rename(kimenet,'reszveny.txt'); End; End;} Procedure Munka_idoszerusites(n : TNapSzam); {file-felep: No,kezdoar,zaroar,legolcsobb eladas, legdragabb eladas, atlagos eladas)} var sorszam:longint; {a munkafileban hanyadik sornal vagyunk} kezdoar,zaroar:real; minelad,maxelad,atlagelad:real; tempfile:text; {eloszor ide modositjuk az adatokat} modfile:text; {BENCE: a mod_rekord-al ossze kellene vhogy hozni...} munkafile:text; {ide kerul - vegul - a modositott file} pufferfile:text; {ideiglenesen! ide kerulnek a beszurando reszvenyek} s:string; {a file-nevek miatt} mf:record sorszam:integer; kezdoar:real; zaroar:real; minelad:real; maxelad:real; atlagelad:real; end; modNo:integer; {csak a lepteteshez} modTip:char; {mit csinaljunk a beerkezo adatokkal} kit:string; szam,szam2:real; i:integer; {segedvaltozok} const elvalaszto='/'; sorvege=#10+#13; procedure olvas(var mit:real; var honnan:text); {!-Me'g ez sem teljesen biztonsagos-} var c:char; s:string; ok:integer; begin s:=''; repeat read(honnan,c); s:=s+c; until ((c=elvalaszto) or (EOLN(honnan))); val(s,mit,ok); if (ok<>0) then mit:=0 else begin end; end; procedure modosit; begin write(tempfile,sorszam); write(tempfile,elvalaszto); while not(EOLN(modfile)) do begin olvas(kezdoar,modfile); write(tempfile,kezdoar); write(tempfile,elvalaszto); if mf.kezdoar=0 then zaroar:=0 else olvas(zaroar,modfile); write(tempfile,zaroar); write(tempfile,elvalaszto); write(tempfile,elvalaszto); olvas(minelad,modfile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,modfile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,modfile); write(tempfile,atlagelad); write(tempfile,elvalaszto); end; write(tempfile,sorvege); end; {-a modosito aleljaras vege-} procedure beszur; var sv1,sv2:integer; {lenyegeben mutatok} i:integer; semmi:string; begin sv1:=mf.sorszam; close(munkafile); reset(munkafile); sv2:=0; while not(EOF(munkafile)) do begin {-sorszamlalas-} readln(munkafile,semmi); inc(sv2); end; close(munkafile); write(pufferfile,sv2); write(pufferfile,elvalaszto); while not(EOLN(modfile)) do begin olvas(kezdoar,modfile); write(pufferfile,kezdoar); write(pufferfile,elvalaszto); olvas(zaroar,modfile); write(pufferfile,zaroar); write(pufferfile,elvalaszto); olvas(minelad,modfile); write(pufferfile,minelad); write(pufferfile,elvalaszto); olvas(maxelad,modfile); write(pufferfile,maxelad); write(pufferfile,elvalaszto); olvas(atlagelad,modfile); write(pufferfile,atlagelad); write(pufferfile,elvalaszto); end; write(pufferfile,sorvege); reset(munkafile); for i:=1 to ((sv1)-1) do begin readln(munkafile,semmi); end; end; {-a beszur aleljaras vege-} Procedure kizar; {Ha egy reszveny kitiltanak a tozsderol} begin write(tempfile,sorszam); write(tempfile,elvalaszto); while not(EOLN(modfile)) do begin olvas(kezdoar,modfile); write(modfile,kezdoar); writeln(modfile,elvalaszto); zaroar:=0; write(tempfile,zaroar); write(tempfile,elvalaszto); olvas(minelad,modfile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,modfile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,modfile); write(tempfile,atlagelad); write(tempfile,elvalaszto); end; end; {-a kizar aleljaras vege-} Procedure bekenhagy; begin write(tempfile,sorszam); write(tempfile,elvalaszto); while not(EOLN(munkafile)) do begin olvas(kezdoar,munkafile); write(tempfile,kezdoar); write(tempfile,elvalaszto); olvas(zaroar,munkafile); write(tempfile,zaroar); write(tempfile,elvalaszto); olvas(minelad,modfile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,modfile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,modfile); write(tempfile,atlagelad); write(tempfile,elvalaszto); end; write(tempfile,sorvege); end; {-a bekenhagy eljaras vege-} Procedure pufferbolki; var tmp:string; {Mivel a readln-t parameterezni kell} sorsz:longint; i:integer; begin sorsz:=0; while not(EOF(munkafile)) do begin readln(munkafile); inc(i); end; repeat inc(i); write(tempfile,i); write(tempfile,elvalaszto); olvas(kezdoar,pufferfile); write(tempfile,kezdoar); write(tempfile,elvalaszto); olvas(zaroar,pufferfile); write(tempfile,zaroar); write(tempfile,elvalaszto); olvas(minelad,pufferfile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,pufferfile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,pufferfile); write(tempfile,atlagelad); write(tempfile,elvalaszto); write(tempfile,sorvege); until (EOF(pufferfile)); end; {-a Pufferbolki aleljaras vege-} procedure fileinic; begin str(n,kit); s:='munka.'+kit; {a hanyadik nap problemaja} assign(munkafile,s); s:='mod.'+kit; assign(modfile,s); assign(tempfile,'tempfile'); rewrite(tempfile); close(tempfile); assign(pufferfile,'puff.txt'); rewrite(pufferfile); close(pufferfile); reset(modfile); reset(munkafile); rewrite(tempfile); rewrite(pufferfile); end; {-fileinic vege-} procedure filezaras; begin close(tempfile); close(pufferfile); erase(pufferfile); str(n,s); s:='munka.'+s; erase(munkafile); rename(tempfile,s); {mit, mire} end; {-filezaras vege-} Begin {-A foprogram eleje-} fileinic; {--a modositasok elvegzese--} while ( not(EOF(modfile)) or not(EOF(munkafile)) ) do begin szam:=sorszam; olvas(szam,munkafile); szam2:=ModNo; olvas(szam2,modfile); {a leptetes miatt} read(modfile,modtip); case modtip of 's'{emmi}: begin bekenhagy; end; {a regiek maradnak} 'm'{odosit}: begin modosit; end; {az ujak lesznek} 'b'{eszur}: begin beszur; end; {az egesz vegere kerul egy uj} 't'{orol}: begin kizar; end; {a jegyzest felfuggesztette'k...} end; end; {--Ha valamelyik file elfogy -> az adatok masolasa--} if EOF(modfile) then while not(EOF(munkafile)) do begin olvas(kezdoar,munkafile); write(tempfile,kezdoar); write(tempfile,elvalaszto); olvas(zaroar,munkafile); write(tempfile,zaroar); write(tempfile,elvalaszto); olvas(minelad,munkafile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,munkafile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,munkafile); write(tempfile,atlagelad); write(tempfile,elvalaszto); write(tempfile,sorvege); end else begin while not(EOF(munkafile)) do begin readln(munkafile); inc(i); end; while not(EOF(modfile)) do begin inc(i); write(tempfile,i); write(tempfile,elvalaszto); olvas(kezdoar,modfile); write(tempfile,kezdoar); write(tempfile,elvalaszto); olvas(zaroar,modfile); write(tempfile,zaroar); write(tempfile,elvalaszto); olvas(minelad,modfile); write(tempfile,minelad); write(tempfile,elvalaszto); olvas(maxelad,modfile); write(tempfile,maxelad); write(tempfile,elvalaszto); olvas(atlagelad,modfile); write(tempfile,atlagelad); write(tempfile,elvalaszto); end; end; close(modfile); {--A beszurando reszvenyek kezelese--} {close(tempfile), nyit(tempfile) Azert, hogy az elejere keruljunk} close(pufferfile); reset(pufferfile); while not(EOF(pufferfile)) do begin pufferbolki; end; filezaras; End; BEGIN clrscr; {Reszveny_idoszerusites;} Munka_idoszerusites(2); END.