![]() |
Delphi&OpenOffice-API - OLE-Variant zu String
Hallo zusammen,
habe folgendes Problem, wollte in eine Stringvariable Text aus einen OpenOffice Word Dokument einlesen jedoch ist der Varianttyp OLE-Variant, der den Text von der Datei enthält. var oo_tmp, oo_text, oo_cursor, tmp_text: OleVariant; << Braucht man für die OpenOffice API str_tmp : string; i_zeile, i_spalte : Integer; oo_text.insertString(oo_cursor, 'API-Test', false); << insertString ist eine API-Funktion tmp_text := oo_text.getstring; << getString auch, aber der Typ ist OLE-Variant str_tmp := VarToStr(tmp_text); << Darum bekomm ich das hier nicht gebacken :/ PS: Wenn ich den Helm anklick, kommt immernoch nix wegen Quellcode. |
AW: Delphi&OpenOffice-API - OLE-Variant zu String
hi
Komisch, bei mir funktionierts. Dann kommt Delphi und /Delphi in eckigen Klammern schon mal probiert:
Delphi-Quellcode:
str_tmp:=tmp_text;
Grüße |
AW: Delphi&OpenOffice-API - OLE-Variant zu String
Zitat:
Was ist das Problem? (Fehlerbeschreibung) Theoretisch sollte Delphi es bei
Delphi-Quellcode:
sogar automatisch umwandeln. :gruebel:
str_tmp := tmp_text;
PS: Wenn bei dir JavaScript/AJAX nicht läuft, dann schau unten mal in die "Forumregeln" und klick dort auf BB-Code. [delphi] dein Quellcode [/delphi] [DELPHI] dein Quellcode [/DELPHI] // Groß oder Klein ist egal --- muß/sollte nur Beides gleich sein [DELPHI]dein Quellcode[/DELPHI] // einzeilig [CODE] anderer Code/Text [/CODE] [CODE="XML"] anderer Code/Text [/CODE] |
AW: Delphi&OpenOffice-API - OLE-Variant zu String
So habs nun geschafft zu lösen, vielleicht nicht die eleganteste Lösung aber es funxt :D
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz