Seite 1 von 1

Makro zum Öffnen eines internen Dokuments

Verfasst: Mo, 07.10.2013 14:47
von gs41
Hallo,

Ausgangspunkt ist das DE/Makro Basic Tutorial http://wiki.openoffice.org/wiki/DE/Makro_Basic_Tutorial
zum Öffnen einer Datei :

Dort steht folgende Anleitung:

Im folgenden Beispiel sehen Sie, wie Sie eine Datei öffnen können.

Code: Alles auswählen

sFile = "C:\Documents and Settings\danny\Desktop\MyCalc.sxc" ' Windows
sFile = "/home/danny/Desktop/MyCalc.sxc" ' Linux
sURL = ConvertToURL(sFile)
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())

Auch hier könnte eine einfache Funktion das Schreiben verkürzen:

Code: Alles auswählen

function fnOpenDoc(sFile)
sURL = ConvertToURL(sFile)
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())
end function
----- Soweit die Vorgabe -------

Demzufolge habe ich versucht die o.g. Anleitung bei meinem Mac wie folgt umzusetzen:

Code: Alles auswählen

SUB Main
sFile = "/Users/Guenter/DesktopTest OO.rtf"
sURL  = ConvertToURL(sFile)
oDoc  = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())  ...wobei ich hier mit StarDesktop und loadComponent überhaupt nichts anfangen kann !
End Sub
Konstellation 1 fehlerhaft ist immer die Zeile oDoc :ERGEBNISSE in folgenden Kombinationen:

a) oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())

FEHLER: BASIC LAUFZEITFEHLER. ES IST EINE EXCEPTION AUFGETRETEN. TYPE: COM.SUN.STAR.LANG. ILLEGAL ARGUMENT EXCEPTION. MESSAGE: URL SEEMS TO BE AN UNSUPPORTED ONE.

b) oDoc = (sURL, "_blank", 0, Array())
FEHLER: BASIC SYNTAXFEHLER. Fehler in Klammerschachtelung.

c) oDoc = (sURL, "_blank", 0, Array)
FEHLER: BASIC SYNTAXFEHLER. Fehler in Klammerschachtelung.
sURl wird bei Fehlermeldung markiert.

d) oDoc = sURL, "_blank", 0, Array
Fehler: BASIC SYNTAXFEHLER. Unerwartetes Symbol:, ( offenbar gehört ein Komma hier nicht her )
sURl wird bei Fehlermeldung markiert.

e) oDoc = sURL "_blank", 0, Array
Fehler: BASIC SYNTAXFEHLER. Unerwartetes Symbol:_blank
sURl wird bei Fehlermeldung markiert.


Konstellation 2

Code: Alles auswählen

Sub Main
sFile = "/Users/Guenter/Desktop/Test OO.rtf" ' 
sURL = ConvertToURL(sFile)
oDoc = fnOpenDoc("file:////Users/Guenter/Desktop/Test OO.rtf")
End Sub
Dann folgt der Fehlerhinweis zu Zeile oDoc: Fehler: BASIC SYNTAXFEHLER. Sub-oder Function-Prozedur nicht definiert.


Konstellation 3

Code: Alles auswählen

Sub Main
sFile = "/Users/Guenter/Desktop/Test OO.rtf" ' 
sURL = ConvertToURL(sFile)
oDoc = fnOpenDoc (sURL, "_blank", 0, Array())
End Sub
Auch hier folgt der Fehlerhinweis zu Zeile oDoc: Fehler: BASIC SYNTAXFEHLER. Sub-oder Function-Prozedur nicht definiert.

FAZIT:
Irgendwie komme ich auf keinen grünen Zweig, da ich offenbar einen grundlegenden Fehler mache. Aber welchen ?

Wer kann mir dabei helfen die Nuss zu knacken ?

Vielen Dank für eure Mühe.

Gruss
Günter

Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; CODE tags gesetzt

Re: Makro zum Öffnen eines internen Dokuments

Verfasst: Mo, 07.10.2013 16:55
von komma4
"Natürlich" sind die Beispiele aus dem Tutorial richtig (d.h.: versuche nicht eine andere Basic-Syntax zu probieren - das klappt nicht), der Fehler sitzt meist vor dem Bildschirm.

Wenn ich mal davon ausgehe, dass Du in "Konstellation 1" den letzten Schrägstrich nach "Desktop" vergessen hast hier abzutippen....

Möglichkeit 1:
Problem mit Leerstellen im Dateinamen unter Mac

Möglichkeit 2:
Problem mit der Zuordnung einer rtf unter Mac

Probiere doch zunächst einmal eine Datei im OOo-Format, ohne Leerzeichen im Dateinamen.
Klappt das?