Advertisement
Guest User

asd

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