da sind mehrere Fehler:
1. die free´s für die 3 erstellten Stringlisten fehlen
2. string beginnen ab 1, dein
Delphi-Quellcode:
while i<length(data.Text) do
Begin
if data.Text[i]='' //wenn wort zuende
ist so nicht korrekt, da du von 0 anfängst. da fehlt ein i:=1;. außerdem ist bei '' mit sicherheit kein einzigstes Wort zu ende, du wolltest hier wohl schreiben ' ', kommas punkt etc. werden bei dir auch nicht berücksichtigt.
3.
for i:=0 to Woerter.Count-1 do
die woerter-stringliste sprichst du außer dort nie an, hier wird nie was drin stehen. stattdessen schreibst du
data.Add(wort);
und fügst dein Wort wieder zur data-liste hinzu. hier wolltest du wahrscheinlich schreiben : woerter.add(...).
4. generell ist das mit der wort und zahlenliste nicht so ideal, hier ist villeicht ein dyn array besser, das hinufügen von zahlen und das umrechnen mit strtoint wird dich zeit kosten. außerdem würden bei dir "Ich" und "ich" zwei unterschieldiche Wörter sein.
Such mal im Forum nach
wörter zählen hier gibt es ein paar wenige Beiträge die du dir mal anschauen solltest, du findest mit Sicherheit einen funktionierenden Algo, den du verwenden kannst.
Mfg Frank