So habs nun geschafft zu lösen, vielleicht nicht die eleganteste Lösung aber es funxt
Danke nochmal für die Antworten
Delphi-Quellcode:
procedure TOLE_OpenOffice.ReplaceTextMark(
const str_suchen, str_ersetzen:
string; b_flag : Boolean);
var
oo_text, oo_cursor : OleVariant;
// Textobjekt für den Textund Cursorobjekt für die Position im Text
str_tmp, str_tmp2 :
string;
// 2 Temporäre Platzhalter
begin
if isNullEmpty(OO_Document)
then
raise Exception.Create('
TOLE_OpenOffice.ReplaceTextMark: Es ist kein Dokument geladen in dem eine Textmarke ersetzt werden könnte.');
oo_text:=OO_Document.Text;
// Textinstanz zuweisen
oo_cursor:=oo_text.createTextCursor;
// Cursor im Text erstellen
str_tmp :=
String(oo_text.GetString);
// Den Text der temporären StringVar zuweisen mittels
// der Konvertierungsfunktion
// Im Text suchen und ersetzen
if b_flag = True
then // entweder alle
str_tmp2 := AnsiReplaceStr(str_tmp, str_suchen, str_ersetzen)
// oder einzeln
else
str_tmp2 := StringReplace(str_tmp, str_suchen, str_ersetzen, [rfIgnoreCase]);
oo_cursor.GotoEnd(True);
// Dokument leeren
oo_cursor.setString('
X');
// Dokument leeren für
oo_text.insertString(oo_cursor, str_tmp2, True);
// den neuen Text
end;