von Stephan » Di, 14.01.2020 18:54
Das ist ein Fehler in der Forumssoftware der Dateien verschwinden lässt. Ich kann die Datei aber auch auf meinem PC nicht mehr finden.
Hier ist ein fertiges Makro aus
https://www.uni-due.de/~abi070/ooo.html, welches das Gleiche erledigt wie die Datei, lediglich werden die Pfade nicht in ein Tabellen- sondern ein Textdokument ausgegeben:
Code: Alles auswählen
Sub DisplayPathSettings
Dim oPathSettings ' Der Service PathSettings.
Dim oPropertySetInfo ' Zugriff auf die Service-Eigenschaften.
Dim aProperties ' Enthält alle Service-Eigenschaften.
Dim oDoc ' Referenz auf ein neu erstelltes Dokument.
Dim oText ' Das Text-Objekt des Dokuments.
Dim oCursor ' Cursor im Text-Objekt.
Dim oProperty ' Eine Service-Eigenschaft.
Dim cPropertyName$ ' Der Name der Eigenschaft.
Dim cPropertyValue ' Der Wert der Eigenschaft kann ein Array sein oder eine Reihe
' von Strings.
Dim aPaths ' Die Pfade als Array.
Dim cPath$ ' Ein einzelner Pfad aus dem Array.
Dim j As Integer ' Indexvariable.
Dim i As Integer ' Indexvariable.
oPathSettings = CreateUnoService("com.sun.star.util.PathSettings")
' Beispiel, wie man die gewünschte einzelne Eigenschaft ermittelt.
'oPathSettings.Work
' Holt die Information über die Eigenschaften der Pfadeinstellungen.
oPropertySetInfo = oPathSettings.getPropertySetInfo()
' Bildet ein Array der Eigenschaften.
aProperties = oPropertySetInfo.getProperties()
' Erzeugt ein Dokument zur Datenausgabe.
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", _
"_blank", 0, Array())
oText = oDoc.getText()
oCursor = oText.createTextCursor()
oText.insertString(oCursor, "Pfadeinstellungen", False)
oCursor.ParaStyleName = "Überschrift 1"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
' Iteriert durch das Eigenschaften-Array
' und schreibt die Informationen über jede Eigenschaft in die Ausgabedatei.
For i = LBound(aProperties) To UBound(aProperties)
oProperty = aProperties(i)
cPropertyName = oProperty.Name
cPropertyValue = oPathSettings.getPropertyValue(cPropertyName)
oText.insertString(oCursor, cPropertyName, False)
oCursor.ParaStyleName = "Überschrift 3"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
If IsArray(cPropertyValue) Then
' Manchmal werden mehrere URLs als Array zurückgegeben.
aPaths = cPropertyValue
ElseIf Len(cPropertyValue) > 0 Then
' Manchmal werden mehrere URLs durch Semikolon getrennt.
' Sie werden in ein String-Array gesplittet.
aPaths = Split(cPropertyValue, ";")
Else
aPaths = Array()
End If
For j = LBound(aPaths) To UBound(aPaths)
cPath = aPaths(j)
oText.insertString(oCursor, cPath, False)
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next i
End Sub
Gruß
Stephan
Das ist ein Fehler in der Forumssoftware der Dateien verschwinden lässt. Ich kann die Datei aber auch auf meinem PC nicht mehr finden.
Hier ist ein fertiges Makro aus https://www.uni-due.de/~abi070/ooo.html, welches das Gleiche erledigt wie die Datei, lediglich werden die Pfade nicht in ein Tabellen- sondern ein Textdokument ausgegeben:
[code]Sub DisplayPathSettings
Dim oPathSettings ' Der Service PathSettings.
Dim oPropertySetInfo ' Zugriff auf die Service-Eigenschaften.
Dim aProperties ' Enthält alle Service-Eigenschaften.
Dim oDoc ' Referenz auf ein neu erstelltes Dokument.
Dim oText ' Das Text-Objekt des Dokuments.
Dim oCursor ' Cursor im Text-Objekt.
Dim oProperty ' Eine Service-Eigenschaft.
Dim cPropertyName$ ' Der Name der Eigenschaft.
Dim cPropertyValue ' Der Wert der Eigenschaft kann ein Array sein oder eine Reihe
' von Strings.
Dim aPaths ' Die Pfade als Array.
Dim cPath$ ' Ein einzelner Pfad aus dem Array.
Dim j As Integer ' Indexvariable.
Dim i As Integer ' Indexvariable.
oPathSettings = CreateUnoService("com.sun.star.util.PathSettings")
' Beispiel, wie man die gewünschte einzelne Eigenschaft ermittelt.
'oPathSettings.Work
' Holt die Information über die Eigenschaften der Pfadeinstellungen.
oPropertySetInfo = oPathSettings.getPropertySetInfo()
' Bildet ein Array der Eigenschaften.
aProperties = oPropertySetInfo.getProperties()
' Erzeugt ein Dokument zur Datenausgabe.
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", _
"_blank", 0, Array())
oText = oDoc.getText()
oCursor = oText.createTextCursor()
oText.insertString(oCursor, "Pfadeinstellungen", False)
oCursor.ParaStyleName = "Überschrift 1"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
' Iteriert durch das Eigenschaften-Array
' und schreibt die Informationen über jede Eigenschaft in die Ausgabedatei.
For i = LBound(aProperties) To UBound(aProperties)
oProperty = aProperties(i)
cPropertyName = oProperty.Name
cPropertyValue = oPathSettings.getPropertyValue(cPropertyName)
oText.insertString(oCursor, cPropertyName, False)
oCursor.ParaStyleName = "Überschrift 3"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
If IsArray(cPropertyValue) Then
' Manchmal werden mehrere URLs als Array zurückgegeben.
aPaths = cPropertyValue
ElseIf Len(cPropertyValue) > 0 Then
' Manchmal werden mehrere URLs durch Semikolon getrennt.
' Sie werden in ein String-Array gesplittet.
aPaths = Split(cPropertyValue, ";")
Else
aPaths = Array()
End If
For j = LBound(aPaths) To UBound(aPaths)
cPath = aPaths(j)
oText.insertString(oCursor, cPath, False)
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next i
End Sub[/code]
Gruß
Stephan