Ahoj, co třeba
Function GetNrOfWords(Veta:string):byte;
{Funkce vraci pocet slov ve vete. Vsechny znaky za teckou se ignoruji.
Neni-li ve vete tecka, zpracovava se cela od zacatku az do konce.
Je-li samotna tecka oddelena mezerou, napr ' a .', je povazovana za slovo,
tj. vysledek by byl roven pro tento priklad 2.}
var Mezera,Pocet:byte;
begin {GetNrOfWords}
Mezera:=1;
Pocet:=0;
if Pos('.',Veta)<>0 then {Pokud je ve vete tecka}
Delete(Veta,Pos('.',Veta)+1,Length(Veta)); {Odstran vse za teckou}
while (Length(Veta)>0)and(Mezera<>0) do begin
{Dokud neni veta prazdna a vyskytuje se tam jeste mezera}
Mezera:=Pos(' ',Veta); {Urci pozici mezery ve vete}
if Mezera<>1 then Inc(Pocet); {Neni-li na prvnim miste mezera, zvys pocet
slov}
Delete(Veta,1,Mezera); {Smaz vse do mezery}
end; {while}
GetNrOfWords:=Pocet; {Vrat pocet slov}
end; {GetNrOfWords}