2016-06-30 19 views

Antwort

0

Hier ist ein einfaches Beispiel, das alle Zeichen in einem Dokument zählt.

xText = xTextDocument.getText(); 
XTextCursor xTextCursor = xText.createTextCursorByRange(xText.getStart()); 
int num_chars = 0; 
while (xTextCursor.goRight((short)1, false)) { num_chars++; } 
System.out.println("Found " + num_chars + " characters."); 

jedoch, wenn es Objekte wie Tabellen oder Frames, dann ein einzelner Textcursor wird nicht funktionieren. Die Verwendung der view cursor behandelt Tabellen und Frames, ist aber viel langsamer. Ausführliche Beispiele finden Sie in Abschnitt 7.14.2 von Andrew Pitonyak's macro document.

Ein anderer Ansatz besteht darin, den gesamten Textinhalt im Dokument aufzuzählen, wie in Abschnitt 7.16.3 von Andrews Dokument. Zugehörige Informationen zu Java finden Sie auch in der Dev guide. Dann für jeden Textabschnitt, iterieren Sie darüber, indem Sie einen Textcursor erstellen, der einigermaßen schnell sein sollte.

+0

mit diesem Code habe ich die Anzahl der Wörter und Leerzeichen, aber nicht die Anzahl der Zeichen, wie kann ich das ändern? – Benjamin

+0

Beim Testen dieses Codes wurde die Anzahl der Zeichen wie erwartet angezeigt. Durch Aufruf von [goRight()] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/text/XTextCursor.html#goRight) werden 'nCount'-Zeichen gleichzeitig angezeigt. Haben Sie vielleicht stattdessen einen [Wort-Cursor] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/text/XWordCursor.html) verwendet? –

+0

Ich benutze genau den gleichen Code wie oben (plus den Code, den ich machen möchte) und zählt die Wörter und Leerzeichen anstelle von Zeichen. – Benjamin