Das kommt mir etwas aufwendig vor und außerdem stößt man dabei auch auf einige größere Probleme:
Was ist z.B. mit Wörtern, die häufiger vorkommen? Sollen diese dann alle ersetzt werden? Oder nur ein bestimmtes? Wenn ein bestimmtes, muß man die Position bestimmten, an die geklickt wurde, ... etc.
Wie dem auch sei. Ein Auffinden eines Wortes in einem Text und das dann zu ersetzen kann man am leichtesten wie folgt realisieren:
Code: Alles auswählen.
data: g_text type string.
data: g_word(10) type c value 'Haus'.
data: g_patt1(50) type c,
g_patt2(50) type c.
concatenate g_word '# *' into g_patt1.
concatenate '*#' ` ` g_word '# *' into g_patt2.
g_text = 'Das ist das Haus vom Nikolaus'.
if g_text cp g_patt1 or g_text cp g_patt2.
write / 'word found'.
endif.
In der Variable sy-fdpos steht dann der offset. Damit könnte man relativ leicht im Text das Wort ersetzen, Wobei zu beachten ist, daß nach Leerzeichen gesucht wird, die vor dem gesuchten Wort enthalten sein müssen (es sei denn das Wort steht am Anfang). In dem Fall ist der Offset der des gefundenen Space!
Das läßt sich aber leich abfangen, wenn man die Patternsuche auf if ... else - Anweisungen verteilt.