Home » Tipps & Tricks » Komponenten » TRichEdit/TMemo/TEdit » Wort aus einem String an einer Position extrahieren
Wort aus einem String an einer Position extrahieren
Folgende Funktion extrahiert das Wort, das sich an einer bestimmten Position befindet.Zu einem Wort gehören alle Zeichen, die diesem Set angehören:
const
TWordSeperators: set of Char = ['A'..'Z', 'a'..'z', 'ö', 'Ö', 'Ä', 'ä', 'ü', 'Ü',
'ß', '´', '', '@', ' _', '0'..'9'];
Als Parameter erwartet die Funktion zunächst den Text in Form eines String und die Position:
function GetSeperateWord(const AText: String; const APosition: Integer): String; const TWordSeperators: set of Char = ['A'..'Z', 'a'..'z', 'ö', 'Ö', 'Ä', 'ä', 'ü', 'Ü', 'ß', '´', '', '@', ' _', '0'..'9']; var iStart, iEnd: Integer; begin if (AText '') and (APosition > 0) and (APosition 0) and (AText[iStart] in TWordSeperators) do Dec(iStart); while (iEnd < Length(AText)+1) and (AText[iEnd] in TWordSeperators) do Inc(iEnd); Result := Copy(AText, iStart+1, iEnd-iStart-1); end else Result:=''; end;
Um das Wort an der Cursorposition eines Memo-Feldes zu extrahieren, können Sie die Funktion wie folgt aufrufen:
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Edit1.Text := GetSeperateWord(Memo1.Text, Memo1.SelStart); end;