Zugriff auf alle Absätze per Textcursor

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

msel
*
Beiträge: 11
Registriert: Mo, 14.11.2005 13:29

Zugriff auf alle Absätze per Textcursor

Beitrag von msel »

Ich möchte mit Hilfe des Textcursors nacheinander auf alle Absätze zugreifen.

Dim objDokument as Object
Dim objText As Object
Dim objCursor As Object
objDokument = GlobalScope.ThisComponent
objText = objDokument.Text
objCursor = objText.createTextCursor
objCursor.gotoStart(False)
objCursor.gotonextparagraph(False)

While objCursor <> ???
objCursor.gotonextparagraph(False)
Wend

Wie kann ich erreichen, dass ich nicht den Cursor über das Textende hinausschiebe (Abbruch der While-Wend-Schleife)?

Mit freundlichen Grüßen, Maria!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo Maria,

also, der Beginn ist ganz gut.

Dann wird es "holbrig" :wink:

mit oDoc.text erhälst du den kompeten Textblock als Objekt.

Dieser besteht aus einzelnen Paragrafen (Absätzen) , die so als Objekt noch nicht ansprechbar sind. Normalerweise erhälst du die einzelnen Absätze durch Erzeugen einer Enummeration und dann durch Iteration durch die Absätze.
Also in der Form:

Code: Alles auswählen

objText = objDokument.Text
oEnum = objText.createEnumeration
Do while oEnum.hasMoreElements
    oAbsatz = oEnum.nextElement
    REM hier folgt jetzt deine Manipulation des Absatzes

loop
Die While/Wend Schleife ist deprecated und sollte nicht mehr benutzt werden.

Wenn du so die Absätze einzeln erhälst, kannst du nun deine Manipulationen vornehmen. Ob du dazu wirklich einen Textcursor brauchst, weiss ich nicht. Da musst du schon mehr schreiben, was du eigentlich erreichen willst.

Bitte bedenke:
Auch Texttabellen weren intern als Absätze behandelt und werden bei der Schleife mit gefunden. Du musst also noch eine Verzweigung einabauen, um diese Fälle abzufangen!

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten