Liebe Community,
ich suche gerade eine Lösung zu folgendem Problem:
Vor längerer zeit hatte ich mir eine kleine Routine geschrieben, um LibreOffice-Dokumente zu sichern. Dazu lege ich, wenn noch nicht vorhanden, im aktuellen Ordner einen Unterordner "_historie" an und kopiere dort die aktuelle Datei rein, wobei ich den Dateinamen aus dem Namen der aktuellen Daten plus einen Timestamp zusammenbaue. Das Format soll dann z.B. "NameDerAktuellenDatei - 2025-02-28_16-29-12.ods" lauten. Das hatte bis zum 05.03.25 auch korrekt funktioniert. Seitdem 05.03.25 sieht der Dateiname nun folgendermaßen aus: "NameDerAktuellenDatei - 2025-02-28_16:29:12.ods", was mir beim sichern auf ein in NTFS formatiertes externes USB-Laufwerk Probleme bereitet. Dazwischen wurde zu LibreOffice ein Update eingespielt
[2025-03-05T09:46:49+0100] [ALPM] upgraded libreoffice-fresh (24.8.4-2 -> 25.2.1-2)
[2025-03-05T09:46:49+0100] [ALPM] upgraded libreoffice-fresh-de (24.8.4-1 -> 25.2.1-1)
Somit hat sich da anscheinend was in LibreOffice Basic geändert bei der Format-Funktion, finde allerdings keine Hinweise dazu.
Die TimeStamp-Funktion sieht folgendermaßen aus
Sub DatumAusgabe()
Dim oDateTime As Object
Dim currentDate As String
Dim currentTime As String
Dim sTStamp as string
' Erstellen Timestamp
oDateTime = createUnoService("com.sun.star.util.DateTime")
currentDate = Format(Date, "yyyy-MM-dd")
currentTime = Format(Time, "hh-mm-ss")
sTStamp = currentDate & "_" & _
currentTime
MsgBox(sTStamp)
End Sub
Display More
Leider ergibt das neuerdings

Hier noch die ganze Routine, falls es interessiert:
Sub MySaveCopyMove()
Dim oDoc As Object
Dim sDir As String
Dim sFName As String
Dim sFPath As String
Dim oSimpleFileAccess As Object
Dim oDateTime As Object
Dim currentDate As String
Dim currentTime As String
oDoc = ThisComponent
sDir = oDoc.URL
sDir = Left(sDir, LastInStr(sDir, "/"))
sDir = sDir & "_historie/"
oSimpleFileAccess = createUnoService("com.sun.star.ucb.SimpleFileAccess")
' Ordner erstellen, falls er nicht existiert
If Not oSimpleFileAccess.Exists(ConvertToURL(sDir)) Then
oSimpleFileAccess.CreateFolder(ConvertToURL(sDir))
End If
' Erstellen des neuen Dateinamens
oDateTime = createUnoService("com.sun.star.util.DateTime")
currentDate = Format(Date, "yyyy-MM-dd")
currentTime = Format(Time, "hh-mm-ss")
sFName = Left(oDoc.Title, Len(oDoc.Title) - 4) & " - " & _
currentDate & "_" & _
currentTime & ".ods"
sFPath = sDir & sFName
' Speichern einer Kopie der Datei
oDoc.storeToURL(ConvertToURL(sFPath), Array())
End Sub
Function LastInStr(sText As String, sFind As String) As Integer
Dim i As Integer
For i = Len(sText) To 1 Step -1
If Mid(sText, i, 1) = sFind Then
LastInStr = i
Exit Function
End If
Next i
LastInStr = 0
End Function
Display More
Diese Routine habe ich schön länger im Einsatz und bis vor diesem Update hatte die anstandslos funktioniert. Auch in der mittlerweile aktuellen Version ist das Verhalten noch das gleiche
Version: 25.2.2.2 (X86_64) / LibreOffice Community
Build ID: 520(Build:2)
CPU threads: 8; OS: Linux 6.13; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.utf8); UI: de-DE
25.2.2-1
Calc: CL threaded
Über Hinweise würde ich mich sehr freuen!
Viele Grüße