[PASCAL] Początek wystąpienia wzorca w stringu

Witam.

Mam problem z napisaniem programu, który powinien zawierać funkcję z dwoma argumentami-tekst i wzór oraz powinna zwracać ona pierwszą pozycję wystąpienia wzorca.

Napisałem coś takiego, ale nie działa prawidłowo:

function znajdz(t,w:string):integer;

var i,j,k:integer;

begin

k:=-1;

lt:=length(t);

lw:=length(w);

i:=1;

repeat

if t[i]=w[i] then

 begin

 k:=i;

 for j:=i to i+lw-1 do

  if not (t[j]=w[j]) then

   begin

   k:=-1;

   break;

   end;

 end;

if k=i then break else

inc(i);

until i
Result:=k;

end;

Pomoże ktoś w znalezieniu błędów? Z góry dziękuję za pomoc.