Einzelnen Beitrag anzeigen

Cyberdine

Registriert seit: 21. Mai 2012
26 Beiträge
 
#4

AW: Delphi&OpenOffice-API - OLE-Variant zu String

  Alt 22. Mai 2012, 13:22
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;
  Mit Zitat antworten Zitat