Writer Absatz löschen

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

Moderator: Moderatoren

Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Writer Absatz löschen

Beitrag von Shirkan »

Liebe Leute,
selbst wenn ich hier jetzt wieder Dresche bekomme: Ich habe einen TextCursor an das Ende einer Zeile gesetzt und möchte nun den nachfolgenden Absatz löschen. Es würde >Entf< bei Tastatureingabe ensprechen, nur brauche ich dies als BasicCode. Kann mir jemand einen Tipp geben.
Gruß Markus
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Writer Absatz löschen

Beitrag von F3K Total »

Hallo,
so vielleicht?

Code: Alles auswählen

Sub delete_Paragraph

Dim myDoc as object
Dim myTextCursor as object
Dim ncount as integer
myDoc = thiscomponent
ncount=inputbox ("Nummer des zu löschenden Absatzes:","Absatz löschen")
mytextCursor=mydoc.text.createtextcursor()
mytextCursor.gotoStart(false)
for i=1 to ncount-1
mytextCursor.gotoNextParagraph(false)
next i
mytextCursor.gotoNextParagraph(true)
mytextcursor.setString("")
End sub
Gruß R
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Writer Absatz löschen

Beitrag von Shirkan »

Hallo R,
das funktioniert super. In meinem Fall möchte ich nun einen bestimmten Absatz in der Kopfzeile bzw. in einem Frame löschen. Das werde ich heute Abend mit dem Code probieren. Schon mal vielen Dank für Deine Hilfe.
Gruß Markus
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Writer Absatz löschen

Beitrag von Shirkan »

Hallo R,
Dein Makro funktioniert auch für die Kopfzeile und bestimmte Frames, allerdings kann der letzte Absatz nicht gelöscht werden. Hast Du noch eine Idee dazu wie dasgehen könnte. Ich weiß gar nicht an welchen Schrauben ich da drehen muss.
Gruß Markus
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Writer Absatz löschen

Beitrag von F3K Total »

Hallo Shirkan
ja, habe ich:

Code: Alles auswählen

Sub delete_Paragraph

Dim myDoc as object
Dim myTextCursor as object
Dim ncount as integer
myDoc = thiscomponent
ncount=inputbox ("Nummer des zu löschenden Absatzes:","Absatz löschen")
mytextCursor=mydoc.text.createtextcursor()
mytextCursor.gotoStart(false)
for i=1 to ncount-1
mytextCursor.gotoNextParagraph(false)
next i
if mytextCursor.gotoNextParagraph(true)=true then
else
 mytextCursor.gotoPreviousParagraph(false)
 mytextCursor.gotoEndOfParagraph(false)
 mytextCursor.gotoNextParagraph(true)
 mytextCursor.gotoEndOfParagraph(true)
endif
mytextcursor.setString("")
End sub
mit der Zeile

Code: Alles auswählen

if mytextCursor.gotoNextParagraph(true)=true then
wird geprüft, ob es einen nächsten Absatz gibt, was beim Letzten nicht der Fall ist.
Hier muß dann anders vorgegangen werden.
1.) einen Absatz zurück
2.) an dessen Ende (vor das CRLF)
3.) von hier an bis in den nächsten Absatz markieren (true)
4.) vom Anfang des nächsten (letzten) Absatzes bis vor dessen CRFL markieren (true)

so löschen wir quasi dieses:

dies ist der vorletzte AbsatzCRLF
dies ist der letzte AbsatzCRLF

Das letzte CRLF springt dann ans Ende des vorletzten Absatzes.

Gruß R
Zuletzt geändert von F3K Total am Sa, 26.11.2011 08:34, insgesamt 1-mal geändert.
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Writer Absatz löschen

Beitrag von Shirkan »

Hallo R,
das ist genial und funktioniert super. So stelle ich mir das Forum vor - leider kann ich derzeit aufgrund meiner Kenntnisse noch nicht so behilflich sein.
Gruß Markus
Antworten