Seite 1 von 1

loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 09:43
von Postbyme
Hallo,
unter WIndows greife ich aus der Datei c:/pri/ad/admin.ods auf eine andere odb folgendermaßen zu:

const gs_urladb = "file:///C:/pri/soft/ad.ods"
go_adb = StarDesktop.loadComponentFromURL(gs_urladb, "_blank", 0, myFileProp() )

die Anwendung muss aber jetzt unter Linux laufen, wie soll ich da den Pfad eingeben?

so klappt nicht:
const gs_urladb = "file:///home/pri/soft/ad.ods"
und einige andere Versuche auch leider nicht.

Kann mir da jemand helfen?

Danke

Re: loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 10:06
von Stephan
den richtigen Pfad kannst Du von OO bzw. LO jeweils selbst 'erstellen' lassen indem Du ConvertToURL verwendest, z.B.:

Code: Alles auswählen

const gs_urladb = ConvertToURL("C:\pri\soft\ad.ods")
go_adb = StarDesktop.loadComponentFromURL(gs_urladb, "_blank", 0, myFileProp() )
unter Linux also:

Code: Alles auswählen

const gs_urladb = ConvertToURL("/home/pri/soft/ad.ods")
so klappt nicht:
const gs_urladb = "file:///home/pri/soft/ad.ods"
ich sehe da im Konkreten eigentlich keinen Fehler.?


Gruß
Stephan

Re: loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 13:23
von Postbyme
klappt leider nicht:

dim go_adb as object
dim gs_urladb as string

Sub main()
const gs_urladb = ConvertToURL("/home/pri/soft/ad.ods") --> schreibt in gs_urladb file:///home/pri/soft/ad.ods
go_adb = StarDesktop.loadComponentFromURL(gs_urladb, "_blank", 0, myFileProp() ) --> bringt Fehler: Variable nicht definiert
end sub

Habe ich da eine Variable falsch definiert (sind global definiert)

Re: loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 17:55
von Stephan
Wie ist denn myFileProp() definiert?

Wenn dort nichts übergeben werden soll, reicht es ein leeres Array direkt zu übergeben:

Code: Alles auswählen

go_adb = StarDesktop.loadComponentFromURL(gs_urladb, "_blank", 0, Array() )
wenn dort etwas übergeben werden soll dann z.B.:

Code: Alles auswählen

Dim myFileProp(0) As New com.sun.star.beans.PropertyValue

myFileProp(0).Name = "Hidden"
myFileProp(0).Value = False

go_adb = StarDesktop.loadComponentFromURL(gs_urladb, "_blank", 0, myFileProp() )
Gruß
Stephan

Re: loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 18:22
von Postbyme
oje, unter Windows läuft das doch alles :-(

Mit "Array()" kommen folgende zwei Fehler:

ERste Meldung: Er findet /home/pri/soft/ad.ods nicht
zweite Meldung an gleicher Programmzeile:Basic Laufzeitfehler. Ausnahme aufgetreten, Type:com.sun.star.lang.illegalArgumentException
Message: Unsupported URL <File:///home/pri/soft/ad.ods>: "type detection failed". ./frameworf/source/loaden/loadenv.cxx: 189.

Re: loadComponentFromURL unter Linux? Dateiangabe?

Verfasst: Do, 16.12.2021 19:05
von Postbyme
Fehler gefunden !!

nach /home kommt ja noch erst der User im Pfad. Oje

Nur durch Fehler lernt der Mensch :oops:

Danke