Delphi-Quellcode:
function PosExt(SearchString: string; str: string);
begin
result := pos(SearchString, str);
while ind > 0 do
if ((result = 1) or (not (SearchString[result - 1] in ['A'..'Z', 'a'..'z']))) and
((result + length(SearchString) > length(str)) or (not (SearchString[result + length(SearchString)] in ['A'..'Z', 'a'..'z']))) then
exit
else begin
delete(str, 1, length(SearchString));
result := pos(SearchString, str);
end;
end;
Der Code ist jetzt mal so heruntergetippt, also ne wahrscheinlichkeit von 25% dass er funktioniert
Das Prinzip ist jedenfalls mal, dass man den String mit der Pos-Funktion sucht. Anschließend schaut man, ob das Zeichen davor und danach ein Buchstabe ist. Wenn das beide male nicht der Fall ist, ist es ein einzelstehendes Wort. Damit jedoch nicht beim Suchstring 'haus' und str='nach hause ist im haus' nach dem ersten (fehlgschlagenen versuch 'haus
e') die funktion 0 zurück gibt geht das ganze in die schleife.
Falls dann das Wort alleine wirklich nie in str enthalten ist, gibt die Funktion 0 zurück
Ich send das jetzt trotzdem mal ab, weil ichs nich um sonst geschrieben haben will
@Airblader: Bei der Funktion gäbs Probs, wenn nach dem Wort gleich ein . oder was anderes als ein Leerzeichen ist