Hallo Mephist
Mephisto hat geschrieben:
demzufolge liefer obiger Code "alles bis auf die letzten 4 Zeichen". Die letzten 4 Zeichen sind die Dateiendung (".doc", ".odt", ...) Wenn deine Dateiendungen 5-Stellig (z.B. ".docx") sein sollten, musst du das halt entsprechend anpassen
Aus genau diesem Grund ist deine Lösung nicht besser, sondern schlechter.
Mit
Code: Alles auswählen
meinArray() = split("meineDatei.ods", ".")
sName =meinArray(0)
erhalte ich immer den richtigen Name, und muss mich nicht darum kümmern, wie lang die Endung ist.
außerdem hat eine Datei, die noch nie abgespeichert wurde keine Endung.
Problematisch wird es nur, wenn im Dateinamen ein Punkt vor kommt.
dafür gibt es aber auch eine intelligente Lösung:
Code: Alles auswählen
If Not thisComponent.haslocation() Then 'überprüfen, ob das Dokument zuvor gespeichert wurde.
sName = thisComponent.Title & ".pdf"
Else
aName() =Split( thisComponent.Title, ".")
for i=0 To UBound(aName())-1
sName = sName & aName(i) & "."
Next
sName=sName & "pdf"
end if
allerding geht es auch noch einfacher.
Code: Alles auswählen
sName=GetFileNameWithoutExtension( thisComponent.Title ) & ".pdf"
Gruß Frieder