von Mr.Ed » Fr, 01.07.2011 19:16
Hallo zusammen,
habe einen SearchDescriptor "oSuche". Er sucht in einem Writer-Dokument nach Absätzen mit Textmustern von der Art "Fehler Nr. 1", "Fehler Nr. 2" ... "Fehler Nr. 20". Zwischen den jeweiligen Absätzen mit den Textmustern befinden sich mehrere Absätze als Fälle des jeweiligen Typs. Ich möchte nun alle Absätze, die unter "Fehler Nr. 1" (usw.) stehen, markieren, "ausschneiden" und in ein anderes Fenster schaffen, um sie dort weiter zu bearbeiten. Es will nicht gelingen. Hier der Code:
Code: Alles auswählen
Function AlFe1_bearbeiten
Dim oDoc1 as Object, oTxt as Object, oSuche as Object, oSuchErg as Object, oTxtC as Object, oViewC as Object
Dim oDoc2 as Object, sStr as String
oDoc1 = ThisComponent
oTxt = oDoc1.text
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = True
.setSearchString("Fehler Nr. [:digit:]{1,2}")
End With
oSuchErg = oDoc1.findFirst(oSuche)
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche)
oSuchErg = oDoc1.gotoStart(true)
sStr = oSuchErg.string
oSuchErg.setString("")
MsgBox sStr
End Function
"findFirst" und "findNext" werden brav ausgeführt. Wenn ich dann aber mit "gotoStart(true)" alle Absätze bis zum Anfang des Dokuments markieren will, gibt mir sStr kein Ergebnis zurück. - Die Literatur, die mir zur Verfügung steht, sagt, dass das Suchobjekt (createSearchDescriptor) ein vollwertiges Text-Cursor-Objekt (SwXTextCursor) zurückliefert, das dann genauso behandelt werden kann wie ein manuell erzeugter Text-Cursor. Also müsste es doch auch möglich sein, mit "gotoStart(true)" die Cursor-Auswahl auf alle Absätze bis zum Beginn des Textes auszuweiten. Hat jemand einen Tipp?
MfG Mr.Ed
Hallo zusammen,
habe einen SearchDescriptor "oSuche". Er sucht in einem Writer-Dokument nach Absätzen mit Textmustern von der Art "Fehler Nr. 1", "Fehler Nr. 2" ... "Fehler Nr. 20". Zwischen den jeweiligen Absätzen mit den Textmustern befinden sich mehrere Absätze als Fälle des jeweiligen Typs. Ich möchte nun alle Absätze, die unter "Fehler Nr. 1" (usw.) stehen, markieren, "ausschneiden" und in ein anderes Fenster schaffen, um sie dort weiter zu bearbeiten. Es will nicht gelingen. Hier der Code:
[code]Function AlFe1_bearbeiten
Dim oDoc1 as Object, oTxt as Object, oSuche as Object, oSuchErg as Object, oTxtC as Object, oViewC as Object
Dim oDoc2 as Object, sStr as String
oDoc1 = ThisComponent
oTxt = oDoc1.text
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = True
.setSearchString("Fehler Nr. [:digit:]{1,2}")
End With
oSuchErg = oDoc1.findFirst(oSuche)
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche)
oSuchErg = oDoc1.gotoStart(true)
sStr = oSuchErg.string
oSuchErg.setString("")
MsgBox sStr
End Function
[/code]
"findFirst" und "findNext" werden brav ausgeführt. Wenn ich dann aber mit "gotoStart(true)" alle Absätze bis zum Anfang des Dokuments markieren will, gibt mir sStr kein Ergebnis zurück. - Die Literatur, die mir zur Verfügung steht, sagt, dass das Suchobjekt (createSearchDescriptor) ein vollwertiges Text-Cursor-Objekt (SwXTextCursor) zurückliefert, das dann genauso behandelt werden kann wie ein manuell erzeugter Text-Cursor. Also müsste es doch auch möglich sein, mit "gotoStart(true)" die Cursor-Auswahl auf alle Absätze bis zum Beginn des Textes auszuweiten. Hat jemand einen Tipp?
MfG Mr.Ed