Advertisement
Guest User

Untitled

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