Hier eine vielleicht *etwas* andere Idee dazu...
Code:
function GetWort(MyText: string; WortNr: cardinal; var Wort: string): boolean;
var MyList: TStringList;
i : integer;
begin
MyList:= TStringList.Create;
for i:= 1 to length(MyText) do
if MyText[i] in [' ', '.', ':', ';', '!', '?'] then MyText[i]:= ',';
MyList.CommaText:= MyText;
i:= 0;
while i<MyList.Count do begin
MyList.Strings[i]:= trim(MyList.Strings[i]);
if MyList.Strings[i]='' then MyList.Delete(i)
else inc(i);
end;
if WortNr<MyList.Count then begin
Wort:= MyList.Strings[WortNr];
result:= true;
end else begin
Wort:= '';
result:= false;
end;
MyList.Free;
end;
Nachtrag: WortNr beginnt hier bei 0, also Wort 1 > WortNr = 0
Grüsse!