Witam, jestem w trakcie pisania programu, który wczytuje plik .pas, szuka ile razy zostały w nim użyte funkcje, procedury, zmienne itp i wypisuje je jako wynik. Aktualnie mam problem z wyszukiwaniem wzorca w danym pliku .pas. Stworzyłem sobie przykładowych 5 linijek tekstu, zapisałem je z pliku .pas do tablicy string i niestety od 2 godzin męczę się gdyż mój program niestety ciągle wypisuje, że dany wzorzec nie występuję. Prosiłbym o sprawdzenie kodu i ewentualne wskazówki co poprawić / co inaczej zrobić bo ciężko mi to idzie :(
program Statystyka;
uses
crt;
var
tekst, wzorzec: string;
i, j, poczatek, rozmiar_pliku : integer;
tosamo: boolean;
plik : text;
tablica_string : array[0..1000] of string;
dl_wzorca, dl_tab : byte;
procedure szukaj; // wyszukiwanie wzorca w lini
begin
for i:=1 to length(tablica_string) do
if tablica_string[i]=wzorzec[1] then
begin
poczatek:=i;
for j:=1 to length(wzorzec) do
if tablica_string[i+j-1]=wzorzec[j] then tosamo:=true else tosamo:=false;
end;
end;
procedure wczytywanie;
begin
i := 0;
assign(plik, 'plik.pas');
reset(plik);
while not eof(plik) do
begin
inc(i);
readln(plik, tablica_string[i]);
end;
rozmiar_pliku := i;
close(plik);
end;
begin
clrscr;
randomize;
wczytywanie;
write('Podaj wzorzec: '); readln(wzorzec);
dl_wzorca := length(wzorzec);
dl_tab := length(tablica_string[1]);
writeln('Dlugosc slowa wzorcowego wynosi: ',dl_wzorca);
writeln('Dlugosc 1 komorki tablicy wynosi: ',dl_tab);
for i:=1 to dl_wzorca do
writeln(' ', wzorzec[i]);
for i:=1 to rozmiar_pliku do
begin
szukaj;
end;
tosamo:=false;
writeln('Rozmiar pliku: ', rozmiar_pliku);
writeln();
{ for i:=1 to rozmiar_pliku do
begin // wypisanie kolejnych linii tekstu
writeln(tablica_string[i]);
end; }
writeln();
if tosamo then
begin
writeln('Wystepuje od pozycji ', poczatek, ' do pozycji ', poczatek+length(wzorzec)-1);
for i:=1 to length(wzorzec) do
begin
write('s[', i+poczatek-1 , ']=');
if wzorzec[i]=chr(32) then write('spacja') else write(wzorzec[i]);
writeln;
end;
end
else writeln('Nie wystepuje');
readln;
end.