Guest User

Untitled

a guest
May 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.39 KB | None | 0 0
  1. program primer(ulaz,izlaz,recnik);
  2. type recn = record
  3.      rec: string;
  4.      zamena: string;
  5.      end;
  6.    
  7.      listpok = ^listzapis;
  8.      listzapis = record
  9.      reci: recn;
  10.      sled: listpok;
  11.      end;
  12.  
  13. var imerec,imeul,imeiz: string;
  14.     ulaz,izlaz,recnik: text;
  15.     prvi: listpok;
  16.  
  17. procedure unosf(var imeul,imeiz,imerec: string);
  18. begin
  19. writeln('Unesite ime ulazne tekstualne datoteke');
  20. readln(imeul);
  21. writeln('Unesite ime izlazne tekstualne datoteke');
  22. readln(imeiz);
  23. writeln('Unesite ime recnika');
  24. readln(imerec);
  25. imeul:= imeul+'.txt';
  26. imeiz:= imeiz+'.txt';
  27. imerec:= imerec+'.txt';
  28. end;
  29.  
  30. procedure unosrec(var prvi: listpok; var recnik:text);
  31. var posl,novi: listpok; rec:string; slov:char;
  32. begin
  33. prvi:=nil; posl:= nil;
  34. while not eof(recnik) do
  35.  while not eoln(recnik) do
  36.  begin
  37.   new(novi);
  38.   novi^.sled := nil;
  39.  
  40.   repeat
  41.   read(recnik,slov);
  42.   if not (slov = ' ') then rec:=rec+slov;
  43.   until slov = ' ';
  44.   novi^.reci.rec:=rec;
  45.   rec:='';
  46.  
  47.   repeat
  48.   read(recnik,slov);
  49.   if not (slov = ' ') then rec:=rec+slov;
  50.   until slov = ' ';
  51.   novi^.reci.zamena:=rec;
  52.   rec:='';
  53.   readln(recnik);
  54.  
  55.   if prvi = nil then prvi := novi
  56.   else posl^.sled := novi;
  57.   posl:= novi;
  58.  end;
  59. end;
  60.  
  61. procedure obrada(prvi: listpok; var ulaz,izlaz:text);
  62. var tekuci: listpok; trrec,znak:string; poz:integer; slov:char;
  63. begin
  64. while not eof(ulaz) do
  65.  while not eoln(ulaz) do
  66.  begin
  67.   tekuci:= prvi;
  68.   trrec:='';
  69.  
  70.   repeat
  71.   read(ulaz,slov);
  72.   if not (slov = (' ')) and not (slov =('!')) and not (slov =('?')) and not (slov =(',')) then trrec:=trrec+slov
  73.   else znak:=slov;
  74.   until (slov = (' ')) or (slov =('!')) or (slov =('?')) or (slov =(','));
  75.  
  76.   while tekuci <> nil do
  77.   if (trrec = tekuci^.reci.rec) then
  78.   begin
  79.    trrec:=tekuci^.reci.zamena;
  80.    break;
  81.   end
  82.   else tekuci:= tekuci^.sled;
  83.  
  84.   write(izlaz,trrec,znak);
  85.  end;
  86. end;
  87.  
  88. procedure brisi(lista:listpok);
  89. var tren: listpok;
  90. begin
  91. while lista <> nil do
  92. begin
  93.  tren:= lista;
  94.  lista := lista^.sled;
  95.  dispose(tren);
  96. end;
  97. end;
  98.  
  99. begin
  100. unosf(imeul,imeiz,imerec);
  101. while (length(imeul)>4) and (length(imeul)>4) and (length(imerec)>4) do
  102. begin
  103.  assign(recnik,imerec);
  104.  reset(recnik);
  105.  unosrec(prvi,recnik);
  106.  close(recnik);
  107.  assign(ulaz,imeul);
  108.  assign(izlaz,imeiz);
  109.  reset(ulaz);
  110.  rewrite(izlaz);
  111.  obrada(prvi,ulaz,izlaz);
  112.  close(ulaz);
  113.  close(izlaz);
  114.  brisi(prvi);
  115.  unosf(imeul,imeiz,imerec);
  116. end;
  117. end.
Add Comment
Please, Sign In to add comment