BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten