Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program szukacz_slow;
  2.  
  3. const
  4.   kropka='.';
  5.   gwiazdka='*';
  6.  
  7. var zm_t:text;
  8.     dl_c,dl_t,i,j,k,h,temp,wynik:integer;
  9.     nazwapliku,ciag,tekst:string;
  10.  
  11. function liczenie_dla_wiersza(tekst:string):integer;
  12. var
  13.   liczba_wystapien:integer;
  14.   temp1:integer;
  15. begin
  16.     dl_t:=Length(tekst);
  17.     i:=1;
  18.     liczba_wystapien:=0;
  19.  
  20.     while i<=dl_t-dl_c+1 do
  21.       begin
  22.         j:=0;
  23.         temp1:=0;
  24.         while ((ciag[j+1]=tekst[i+temp1])and(j<dl_c)) or (ciag[j+1]=kropka) or ((upcase(ciag[j+1])=upcase(tekst[i+temp1])) and (j<dl_c)) do
  25.           begin
  26.           j:=j+1;
  27.           temp1:=temp1+1;
  28.           if(ciag[j+1]=gwiazdka) then
  29.               begin
  30.               j:=j+1;
  31.               while (not(ciag[j+1]=tekst[i+temp1])) do temp1:=temp1+1;
  32.               end;
  33.           end;
  34.           writeln('ZMIENNA J: ',j);
  35.           writeln('  DL_C   : ',dl_c);
  36.          
  37.           if j=dl_c then
  38.             begin
  39.             liczba_wystapien:=liczba_wystapien+1;
  40.             end;
  41.           i:=i+1;
  42.       end;
  43.       liczenie_dla_wiersza:=liczba_wystapien;
  44.  
  45. end;
  46.  
  47. procedure wypisanie(liczba:integer;wiersz:integer);
  48. begin
  49.      if(not(liczba=0)) then
  50.      begin
  51.        write(' ',wiersz);
  52.      end;
  53. end;
  54.  
  55. begin
  56.  
  57.      //podanie sciezki do pliku, w ktorym znajduje sie tekst do przeszukania
  58.      Write('Podaj nazwe pliku do przeszukania z koncowka ".txt": ');
  59.      Readln(nazwapliku);
  60.  
  61.      //otwarcie pliku z danymi do przeszukania
  62.      assign(zm_t, nazwapliku);
  63.      reset(zm_t);
  64.  
  65.      //zapytanie o slowo w pliku
  66.      Writeln();
  67.      Write('Podaj ciag znakow, ktory chcesz wyszukac w pliku tekstowym: ');
  68.      Readln(ciag);
  69.      Writeln();
  70.  
  71.      //okreslenie dlugosci ciagu
  72.      dl_c:=Length(ciag);
  73.      for h:=1 to Length(ciag) do
  74.              begin
  75.              if(ciag[h]=gwiazdka) then
  76.                 begin
  77.                 dl_c:=length(ciag)-1;
  78.                 break;
  79.                 end;
  80.              end;
  81.  
  82.      //przeszukiwanie calego pliku
  83.      k:=1;
  84.      temp:=0;
  85.      wynik:=0;
  86.      //Write('Wiersz nr:');
  87.      while not eof(zm_t) do
  88.        begin
  89.        Readln(zm_t, tekst);
  90.        writeln(tekst);
  91.        temp:=liczenie_dla_wiersza(tekst);
  92.        //wypisanie(temp,k);
  93.        k:=k+1;
  94.        wynik:=temp+wynik;
  95.        end;
  96.      Writeln();
  97.      Writeln('Liczba wystapien wzorca: ',wynik);
  98.  
  99.      //zamkniecie pliku
  100.      close(zm_t);
  101.  
  102.      //wiadomosc dla user'a o koncu programu
  103.      Writeln();
  104.      Write('Program zakonczyl dzialanie, nacisnij ENTER by zakonczyc.');
  105.      Readln();
  106.  
  107. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement