1. Zeile löschen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: 1. Zeile löschen

Re: 1. Zeile löschen

von DPunch » Fr, 11.06.2010 17:41

Aloha

Dann fällt mir letztendlich auch nur der Weg über den DispatchHelper ein

Code: Alles auswählen

Sub RemoveEmptyLineBeforeTextTable
	oDoc = thisComponent
	oDoc.lockControllers
	oViewCursor = oDoc.CurrentController.getViewCursor
	oViewCursor.gotoStart(False)
	If NOT isEmpty(oViewCursor) Then
		oDoc.unlockControllers
		Exit Sub
	End If
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dispatcher.executeDispatch(document, ".uno:Delete", "", 0, Array())
	oDoc.unlockControllers
End Sub

Re: 1. Zeile löschen

von StefanJoachimsthaler » Do, 10.06.2010 13:14

DPunch hat geschrieben:Aloha

Wenn Du die Tabelle eindeutig identifizieren kannst, sie immer entweder direkt am Anfang vom Dokument oder eben nach der Leerzeile auftaucht, dann kannst Du es so probieren:

Code: Alles auswählen

oDoc = thisComponent
oTextTables = oDoc.TextTables
oMyTable = oTextTables.getByName("meineTabelle")
On Local Error Resume Next
oDoc.Text.removeTextContentBefore(oMyTable)
Leider ist die Tabelle nicht identizierbar. Ist leider auch nicht immer vorhanden!
Gibt es eine möglichkeit zu prüfen, ob nach der ersten Leerzeile eine Tabelle kommt?

Re: 1. Zeile löschen

von DPunch » Mi, 09.06.2010 16:40

Aloha

Wenn Du die Tabelle eindeutig identifizieren kannst, sie immer entweder direkt am Anfang vom Dokument oder eben nach der Leerzeile auftaucht, dann kannst Du es so probieren:

Code: Alles auswählen

oDoc = thisComponent
oTextTables = oDoc.TextTables
oMyTable = oTextTables.getByName("meineTabelle")
On Local Error Resume Next
oDoc.Text.removeTextContentBefore(oMyTable)

1. Zeile löschen

von StefanJoachimsthaler » Di, 08.06.2010 09:07

Hallo,
nach einem bestimmten Vorgang habe ich immer eine leere Zeile an erster Stelle in meinem Dokument.
Das ist auch definitiv so gewünscht.

Jetzt würde ich diese gerne aus einem Dokument entfernen.
Dazu habe ich auch eine Lösung geschrieben, die erstmal ganz gut funktioniert.

Code: Alles auswählen

objCursor.gotoStart(False)
objCursor.gotoNextParagraph(True)
objText.insertString(objCursor, "", True)

Beginnt das Dokument allerdings mit einer Tabelle, wurde diese immer komplett markiert und mit einem Leer-String überschrieben.
Dazu habe ich den Code folgendermaßen erweitert:

Code: Alles auswählen

objCursor.gotoStart(False)
objCursor.gotoNextParagraph(True)
If objCursor.getString().Trim <> "" Then
  objCursor.goLeft(1, True)
End If
objText.insertString(objCursor, "", True)
Allerdings wird die erste Leerzeile jetzt gar nicht entfernt, wenn das Dokument anschließend mit einer Tabelle beginnt.
Gibt es eine Möglichkeit den Cursor an die erste Stelle zu setzen und anschließend die "ENTF"-Taste zu simulieren?
Damit würde die erste Zeile entfernt werden und die Tabelle bestehen bleiben!

Vielen dank schonmal!

Nach oben