[GastForen Programmierung/Entwicklung AppleScript Wissenswertes über das Eventprotokoll

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

Wissenswertes über das Eventprotokoll

Hans Haesler
  
Beiträge gesamt: 5826

13. Jun 2003, 22:14
Beitrag # 1 von 1
Bewertung:
(653 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Eventprotokoll ist ein zusätzliches Fenster (mit Befehl-E öffnen) des Skripteditors, in welchem beim Abspielen eines Scripts die Befehle und deren Resultate aufgezeichnet werden.

Wer (wie zum Beispiel Goar ;-) fleissig das Eventprotokoll benutzt, um Probleme besser zu verstehen, der hegt ab und zu den Wunsch, diese Aufzeichnungen auf einen bestimmten Abschnitt des Scripts zu beschränken.

Es kann nämlich recht mühsam sein, durch die Zeilen zu scrollen bis man den Teil erreicht, welcher einen interessiert. Es kann aber auch geschehen, dass der Beginn des Protokolls fehlt, weil das Fassungsvermögen beschränkt ist (maximal 20'000 Zeichen).

Abhilfe bringen die Befehle 'stop log' und 'start log'. Wenn das Fenster des Eventprotokolls geöffnet ist, dann werden beim Start des Scripts sofort die Events aufgezeichnet. Wenn, z.B., das Script mit geprüftem und bewährtem Code beginnt, dessen Resultate nicht interessant sind, dann muss man den Befehl 'stop log' ganz an den Anfang des Scripts setzen. Unmittelbar vor dem Abschnitt, welcher Probleme macht, wird mit 'start log' das Schreiben des Protokolls aktiviert.

Umgekehrt verfährt man am Schluss: sobald man dem Code wieder vertraut, kann mit 'stop log' das Aufzeichnen gestoppt werden.

Hier der schematische Aufbau. Anstelle der Kommentare muss man sich eine Menge echten, funktionierenden Code vorstellen. Der Übersicht halber (und vor allem aus Platzgründen) verzichte ich auf ein aussagekräftigeres Beispiel. Aber dieses kleine Snippet funktioniert:
---
stop log
tell document 1 of application "QuarkXPress 4.11"
  --
  -- Der Beginn des Scripts (aus Platzgründen hier nicht wiedergegeben),
  -- ist "sauber" und soll deshalb nicht im Eventprotokoll erscheinen
  --
  -- Ab der nächsten Zeile wird aufgezeichnet
  start log
  repeat with i from 1 to count of picture boxes
    tell picture box i
      tell image 1
        if bounds is not {0, 0, 0, 0} then
          set picPath to (get file path) as string
          log picPath -- dadurch erscheint der Wert von 'picPath' im Protokoll
        end if
      end tell
    end tell
  end repeat
  stop log -- Ab hier wird nicht mehr aufgezeichnet
  --
  -- Das Ende des Scripts ist ebenfalls geprüfter Code (auch dieser wird
  -- aus Platzgründen hier nicht wiedergegeben). Das Protokollieren würde
  -- eventuell nur die wichtigen ersten Zeilen verdrängen.
  --
end tell
Code
Im Eventprotokoll erscheinen nicht alle Werte. Jene der Events: ja; jene der Variablen: nein. Dies kann man mit dem obenstehenden Beispiel verfolgen. Mit dem Befehl 'set picPath to (get file path) as string' wird der Variablen 'picPath' der Pfad des Bildes zugewiesen. Im Protokoll steht aber nur das Resultat von '(get file path)'. Wenn der Wert von 'picPath' auch erscheinen sollte, dann erreicht man dies mit dem Einschieben von 'log picPath'. Das Resultat wird zwischen Klammern und Sternen angezeigt. Hier ein Ausschnitt aus dem Eventprotokoll: 

get bounds of image 1 of picture box 6 of document 1
  --> {0, 0, 492, 347}
get file path of image 1 of picture box 6 of document 1
  --> alias "Macintosh HD:demo:RT_images:RT41:RT_05_choix_jour:RT41_05_MA01.jpg.lay"
(*Macintosh HD:demo:RT_images:RT41:RT_05_choix_jour:RT41_05_MA01.jpg.lay*)
---
Die "Events" sehen aus wie Befehlszeilen. Deren Resultaten wird ein Pfeil vorangestellt: -->
Der Test 'if bounds is not {0, 0, 0, 0} then' löst offensichtlich den Befehl 'get bounds of image 1 ...' aus. Und, wie schon gesagt, die Resultate von 'log'-Befehlen werden von '(*' und '*)' eingerahmt.

Ganz wichtig: sämtliche 'log'-Befehle müssen aus dem fertigen Script entfernt werden (oder mindestens mit vorangestellten '--' auskommentieren). Sonst bremsen diese Zeilen die Ausführung spürbar, auch wenn das Fenster des Eventprotokolls geschlossen ist.

Hans Haesler, hsa@ringier.ch
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!