[ programer9 @ 21.01.2014. 00:30 ] @
Da li neko zeli da mi pomogne da uradim potrpogram za obradu, u sledecem zadatku:



Sastaviti program na programskom jeziku Pascal, koji radi sa tekst datotekama po sledećem
redosledu izvršavanja:
a) poziva potprogram koji učitava imena datoteka sa kojima će raditi,
b) poziva odgovarajući potprogram koji izvrši traženu obradu nad datotekama,
c) ponavlja prethodne korake sve dok korisnik za ime datoteke ne zada prazan string.


Zadatak je sledeci:


Čita ulaznu datoteku sa podacima o partijama jedne kartaške igre, gde je svaki red po formatu
idPartija idIgrač karta1 karta2 karta3 karta4 (identifikacija partije i identifikacija
igrača – celi brojevi; karte – dvoslovna oznaka, prvi znak boja K, P, H ili T, drugi znak vrednost
2, 3, ... 9, X, A, J, Q ili K) i koja može u susednim redovima imati podatke o istoj partiji;
program u izlaznu datoteku treba da upiše za svaku partiju da li je ispravna ili nije, po formatu
idPartija ispravna (ispravnost – string „Ispavan“ ili „Neispravan“); partija se igra sa jednim
špilom od 52 karte; partija je ispravna ako se svaka karta u partiji javlja najviše jedanput;

Podatke iz datoteka nije dozvoljeno smeštati u bilo
kakvu zbirku podataka u memoriji (na primer, niz ili ulančanu listu).


Potreban mi je potprogram za obradu, sastavio sam sledece:

program zadatak;

type
partija=record
idpartije:integer;
idigraca:integer;
karta1:string[2];
karta2:string[2];
karta3:string[2];
karta4:string[2];
end;

var f1, f2:text;
dat1,dat2:string;
temp,part:partija;

procedure procitajRec(var f:text; var s:string);
var c:char;
n:integer;
begin
read(f, c);
while (c = ' ') do read(f, c);
n:=1;
while (c <> ' ') do begin
s[n]:=c;
n:=n+1;
read(f, c);
end;
s[0] := chr(n-1);
end;


procedure obrada(var f1:text; var f2:text);
................................................


................................................


procedure imenaDatoteka(var dat1:string; var dat2:string);
begin
write('Prvo ime: ');
readln(dat1);
write('Drugo ime: ');
readln(dat2);
end;

begin
while true do begin
imenaDatoteka(dat1,dat2);
if (dat1='') or (dat2='') then break;

assign(f1, dat1);
assign(f2, dat2);
reset(f1);
rewrite(f2);
obrada(f1,f2);
close(f1);
close(f2);
end;
end.
[ programer9 @ 21.01.2014. 18:10 ] @
Rešeno... Hvala u svakom slučaju :)