🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Office "Tools" Library funktioniert nicht (richtig)

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
harald235

[gelöst] Office "Tools" Library funktioniert nicht (richtig)

Beitrag von harald235 » Do 14. Jun 2012, 21:15

Hallo liebe Helfende,

meine Adress-Datenbank funktioniert unter openSUSE und Windows 7 eigentlich einwandfrei.

Eigentlich bedeutet:
Für ein Makro brauche ich aus der LibreOffice "Tools" Bibliothek die Function "GetFileNameWithoutExtension", um einen Dateinamen ohne .odb-Erweiterung aus einer Pfadangabe zu extrahieren. Das verwende ich für die automatische Anmeldung der DB.

Der Aufruf:

Code: Alles auswählen

' die Bibliothek "Tools" laden, falls noch nicht geschehen 
' wird gebraucht für "GetFileNameWithoutExtension"
	If not globalScope.BasicLibraries.isLibraryLoaded("Tools") Then
		globalScope.BasicLibraries.loadLibrary("Tools")
	End If

' den Datenbanknamen ohne .odb aus der Pfadangabe auslesen
	sDBName = Tools.Strings.GetFileNameWithoutExtension(thisDatabaseDocument.url, getPathSeparator)
In openSUSE funktioniert das einwandfrei, in Windows 7 nicht. Von beiden Betriebssystemen wird dieselbe Datenbank angesprochen, sie liegt auf einer von beiden Systemen nutzbaren Partition.

Das Problem:
Windows extrahiert nicht den Dateinamen aus dem Pfad, sondern behält den ganzen Pfad bei. Eine Fehlermeldung kommt nicht. Testweise habe ich getPathSeparator weggelassen, dasselbe Ergebnis.

Wenn ich einen Fehler provoziere, indem ich aus "Tools" die Function in mein Makro kopiere, meckert mich Base an, das diese Function anderweitig definiert ist und in der IDE erscheint aus der Bibliothek "Tools" der Code von Function "GetFileNameWithoutExtension". Das versteh' ich nicht.

Die Umgebungsbedingungen:
openSUSE 12.1
LibreOffice Base 3.5.4.2
eingebettete HSQLDB 1.8
Windows 7
auf beiden Systemen Java JRE 1.6.0.21

Hat einer eine Idee wie ich die Function zum Laufen kriege?

Gruß harald
Zuletzt geändert von harald235 am Fr 15. Jun 2012, 01:42, insgesamt 1-mal geändert.

harald235

Re: LibreOffice "Tools" Library funktioniert nicht (richtig)

Beitrag von harald235 » Fr 15. Jun 2012, 00:35

Hab's gerade selbst rausgefunden:

in Windows funktioniert "getPathSeparator" nicht wie er soll (bei mir):

Code: Alles auswählen

GetFileNameWithoutExtension(thisDatabaseDocument.url, getPathSeparator)
Stattdessen gebe ich einen Separator direkt ein:

Code: Alles auswählen

sDBName = Tools.Strings.GetFileNameWithoutExtension(thisDatabaseDocument.url, "/")
Also nicht der Windows-typische Path-Separator "\" (backslash), sondern tatsächlich "/" (slash).

Dann funktionierts auch in Windows 7

Gruß harald

harald235

Re: [gelöst] Office "Tools" Library funktioniert nicht (rich

Beitrag von harald235 » Fr 15. Jun 2012, 15:16

manchmal braucht's etwas länger bis ich das Offensichtliche wahrnehme:

Ich habe als Parameter "thisDatabaseDocument.url" übergeben. Und erwartet, das Windows seinen üblichen PathSeparator, den backslash (\) benutzt.
Nur: In URL's ist der Separator richtigerweise ein oder mehrere slash's (/). Egal ob das Betriebssystem Linux, Windows oder Mac ist.

Fühle mich gerade ein bißchen doof.

Gruß harald


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten