ich scripte gerade eine FileMaker Datenbank, die ein Quark Dokument erstellt und die Daten darauf erstellt.
In OS9.2.2 funktioniert alles einwandfrei - in OS X.2.4 leider nicht.
global HDPath
tell application "QuarkXPress Passport? 4.11" tell document 1 findhome() of me save document in HDPath --as alias funktioniert ebenfalls nicht end tell end tell
on findhome() tell application "Finder" set theVersion to version if "9" is in theVersion then set is9 to true else set is9 to false end if if is9 is true then set theHDPath to the path to desktop set the HDPath to ((theHDPath & "test.qxd") as string) else tell application "Finder" to set theHDPath to home as alias set the HDPath to ((theHDPath & "test.qxd") as string) end if end tell end findhome
Hat jemand eine Idee? Oder ist Quark in der Classic-Umgebung einfach nicht so scriptable? Ich hoffe doch schon, da ich die Lösung auf beiden Systemen laufen lassen möchte.
happy filemaking
Armin
PS. @Hans - Ich verwende noch "the" vor der Variable - dauert aber, bis ich mich dann umgestellt habe.
Du sagst, dass in OS9.2.2 alles einwandfrei funktioniert. Bei mir nicht. Ich muss zuerst aus dem Befehl 'save document in HDPath' das wort 'document' entfernen, dann klappt es. Und ebenfalls unter Mac OS X. Weil sich dieser Befehl in einem 'tell document 1'-Block befindet, genügt der Befehl 'save in HDPath'. Das heisst, etwas anderes generiert eine Fehlermeldung.
Im übrigen: ob Mac OS 9 oder X läuft, kann viel einfacher gefunden werden. Man versucht, einen Befehl auszuführen, welcher unter Mac OS X eine Fehlermeldung verursacht. Gibt es keinen Fehler, dann ist man in OS 9. Sonst in OS X. Hier meine Version: --- try path to control panels set HDPath to (path to desktop as string) & "test.qxd" on error number -43 set HDPath to (path to "cusr" as string) & "test.qxd" end try
tell document 1 of application "QuarkXPress Passport™ 4.11" save in HDPath end tell --- Es wird versucht, den Pfad zu den Kontrollfeldern zu erhalten. Wenn es gelingt, dann wird der Pfad zum Schreibtisch plus der Name der Datei in die Variable 'HDPath' geschrieben. Bei einem Fehler befindet man sich unter Mac OS X und dem Pfad zum gegenwärtigen Benutzer (= current user = "cusr") wird der Name der Datei angehängt. In beiden Fällen braucht man den Finder nicht.
Hey, ich spiele hier nicht den Code-Polizisten. Dennoch: wenn ich Sachen wie 'set the HDPath to ((theHDPath' sehe, dann ...
Ich hab den Fehler gefunden - Es liegt an dem Namen der Festplatte. Der beinhaltet einen Umlaut. Nach meinen heutigen Tests mit oder ohne Umlaut ist der Fehler wirklich darin. Die Festplatte darf meinen Tests nach keine Umlaute enthalten. Ordner, die darin sind jedoch schon. Hmm irgendwie nicht logisch.
Sorry, das kommt, wenn man das Script zerpflückt und nur den Teil ins Forum schreibt, der zwickt. Ich habe das Script ursprünglich in einer anderen Form gehabt
tell application "QuarkXPress Passport 4.11" findhome()of me --hier kommen noch einige Überprüfungen usw. save document 1 in HDPath end tell
Da sieht man mal wieder den Profi - mit diesen kurzen Zeilen das erreicht, wofür ich die 3-fache Zeilenanzahl brauche.
Stimmt, hast ja vollkommen recht - bin ja lernfähig. Ich bin noch nicht lange so aktiv mit der Scripterei - da es keine festen Anhaltspunkte gibt, hab ich die Beschreibung ins englische so von anderen übernommen. Das ist wie bei FileMaker, man kann alle Namen vergeben, aber man sollte sich an gewisse Richtlinien halten. Die Richtlinien geben immer die langjährigen Anwender/Profis vor und von denen lerne ich auch gerne.
happy filemaking
Armin
PS. Keine Umlaute bei den Festplattennamen verwenden - kann zu Problemen führen bei AS unter OS X.