[GastForen Programmierung/Entwicklung AppleScript XPress-Dokument: Version testen, ohne es zu öffnen (Teil 2)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

XPress-Dokument: Version testen, ohne es zu öffnen (Teil 2)

Hans Haesler
  
Beiträge gesamt: 5826

11. Sep 2003, 22:59
Beitrag # 1 von 1
Bewertung:
(496 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier wird nun der Versions-Test in ein Script eingebaut, welches XPress-Dokumente öffnen soll. Dabei wird die Anzeige des Dialoges des Scripts im Teil 1 durch das Retournieren eines Wertes ersetzt. Dieses Script benutzt ebenfalls den 'choose file'-Befehl, um ein Dokument auszuwählen. In der Praxis würde man eher 'choose folder' benutzen (einen Ordner wählen) oder – anwenderfreundlicher – das Script in ein Droplet verwandeln.

In der ersten Zeile wird der Variablen 'versClue' die Zahl '4' (wie QuarkXPress 4) zugewiesen. Dann wird der Anwender aufgefordert, ein Dokument auszuwählen. Der Pfad zur Datei wird in der Variable 'filePath' gespeichert. In der dritten Zeile wird der Handler 'getVers' aufgerufen. Das Resultat des Tests wird als der Version entsprechende Ganzzahl zurückgegeben und in der Variablen 'docVers' gespeichert.

In der vierten Zeile wird der Wert von 'docVers' mit jenem von 'versClue' verglichen. Ist er "kleiner als oder gleich wie" (= 'less than or equal to'), dann kann das Dokument geöffnet werden. Sonst meldet ein Dialog, dass das Dokument nicht geöffnet werden kann. Dessen Version wird auch gezeigt. Mit 'set docVers to result' wird der vom Handler zurückgegebene Wert abgefangen und in den Dialog eingebaut.
---
set versClue to 4
set filePath to (choose file with prompt "Ein QuarkXPress-Dokument wählen." of type {"XDOC", "XPRT"}) as string
set docVers to getVers(filePath)
if docVers is less than or equal to versClue then
  tell application "QuarkXPress 4.11"
    activate
    open filePath use doc prefs yes remap fonts no do auto picture import no
    tell document 1
      --weitere Aktionen mit dem offenen Dokument
    end tell
  end tell
else
  set docVers to result
  display dialog "Dieses Dokument (= v. " & docVers & ")
kann nicht mit dieser Version von
QuarkXPress geöffnet werden." buttons "OK" default button 1 with icon 0
end if

on getVers(filePath)
  set versionClue to read file filePath for 12
  if versionClue contains "MM" then
    if versionClue ends with "?" then
      return 3
    else if versionClue ends with "A" then
      return 4
    else if versionClue ends with "B" then
      return 5
    else if versionClue ends with "C" then
      return 6
    else
      return 9
    end if
  else if versionClue contains "II" then
    set testChar to character 11 of versionClue
    if testChar = "?" then
      return 3
    else if testChar = "A" then
      return 4
    else if testChar = "B" then
      return 5
    else if testChar = "C" then
      return 6
    else
      return 9
    end if
  end if
end getVers
---
Ist das Script als Droplet konzipiert, dann sollte der Dialog nicht mehr angezeigt werden. Man kann mit einer Variablen die eventuellen Probleme zählen und am Schluss melden oder in einen Rapport schreiben.

Hans Haesler <hsa@ringier.ch>
X