Forenindex » Programmierung/Entwicklung » AppleScript » Quark in der Classic-Umgebung - save document in

Quark in der Classic-Umgebung - save document in

Anonym
Beiträge gesamt: 22827

10. Apr 2003, 11:55
Bewertung:

gelesen: 1107

Beitrag als Lesezeichen
Hi Scripter,

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.

Quark in der Classic-Umgebung - save document in

Hans Haesler
  
Beiträge gesamt: 5826

10. Apr 2003, 21:10
Bewertung:

gelesen: 1106

Beitrag als Lesezeichen
Hallo Armin,

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.
Zitat PS. @Hans - Ich verwende noch "the" vor der Variable - dauert aber, bis ich mich dann umgestellt habe.

Hey, ich spiele hier nicht den Code-Polizisten. Dennoch: wenn ich Sachen wie 'set the HDPath to ((theHDPath' sehe, dann ...

Hans Haesler, hsa@ringier.ch

Quark in der Classic-Umgebung - save document in

Anonym
Beiträge gesamt: 22827

11. Apr 2003, 23:33
Bewertung:

gelesen: 1106

Beitrag als Lesezeichen
Hallo Hans,

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.

Zitat von Hans Haesler 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.

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

Zitat von Hans Haesler 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.

Da sieht man mal wieder den Profi - mit diesen kurzen Zeilen das erreicht, wofür ich die 3-fache Zeilenanzahl brauche.

Zitat Hey, ich spiele hier nicht den Code-Polizisten. Dennoch: wenn ich Sachen wie 'set the HDPath to ((theHDPath' sehe, dann ...

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.