Ich habe es geschafft. Mit folgender Schleife hangele ich mich durch den Text und markiere nacheinander die Bereiche zwischen bestimmten Tags:

----------

For i = 0 to oAlleStellen1.getCount() - 1

        oVC = oDok.CurrentController.getViewCursor()


        oGefunden1 = oAlleStellen1.getByIndex( i )
        oGefunden2 = oAlleStellen2.getByIndex( i )
        
        oVC =oDok.getText.createTextCursorByRange(oGefunden1.End)
        oVC.gotoRange(oGefunden1.End,false)
        oVC.gotoRange(oGefunden2.Start,true)

rem bereich durch in Formel übersetzen:

        document   = ThisComponent.CurrentController.Frame
        dispatcher =    createUnoService("com.sun.star.frame.DispatchHelper") 
dispatcher.executeDispatch(document, ".uno:InsertObjectStarMath", "", 0, Array())

Next i

----------

Leider funktioniert das Übersetzen in die Formel nur beim ersten Tag im Text. Danach bleibt die Formel als Objekt markiert, und der Cursor springt nicht weiter und es entsteht eine com.sun.star.uno.RuntimeException "no text selection". Ohne Formelübersetzung funktioniert der Code und markiert nacheinander die entsprechenden Bereiche. Weiß jemand Rat? Es sollen schon alle Formeln zwischen allen Tags übesetzt werden.

Gruß,
Johannes



Johannes Hoechstaedter schrieb:
Hallo, und ert mal danke für die Antworten,

die zweite Lösung (@Winfried) kommt meiner Vorstellung recht nahe. Leider fehlt mir das Wissen, um einen Text zu traversieren geschweige denn Tags zu ersetzen.



Winfried Rohr schrieb:
wie markiere ich alle
Stellen im Text die konvertiert werden sollen?

wenn das automatisch funktionieren soll brauchst Du eine eindeutige
(Er-)Kennung, wo eine Formel beginnt und endet, analog bspw. den
HTML-tags (oder kannst Du Beginn/Ende einer Formel sonstwie
erkennen?)
<Formel>
x = 2y3
</Formel>

Du traversierst durch das Dokument und suchst ein 'Beginn'-tag.
Dort erzeugst Du einen Textcursor, verankerst ihn und *selektierst*
bis vor das 'Ende'-tag.
Jetzt Deinen dispatcher Code aufrufen und weiter im Text.

Mit OOo wird (in Tools?) eine Routine mitgeliefert, die den Text
zwischen zwei tags findet - kannst Du vielleicht auch irgendwie
hier einsetzen.

Die tags entfernst Du am Ende des Dokument angelangt mit einem
ReplaceDescriptor (<Formel> und </Formel> gegen nichts).


Hilft das weiter?

Cheers
Winfried

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an