[GastForen Programmierung/Entwicklung AppleScript Bug beim Boxenzählen mit QuarkXPress 6.1

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

Bug beim Boxenzählen mit QuarkXPress 6.1

Hans Haesler
  
Beiträge gesamt: 5818

24. Mär 2004, 17:30
Beitrag # 1 von 1
Bewertung:
(396 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eine Konstruktion, welche häufig gebraucht wird:
---
tell document 1 of application "QuarkXPress 6.1"
  repeat with i from 1 to count of pages
    tell page i
      repeat with j from 1 to count of text boxes
        tell text box j
---
Dies funktioniert immer noch. Aber aufgepasst, wenn auf Doppelseiten Boxen seitenübergreifend gruppiert sind. XPress 6.1 rechnet dann beim Zählen alle Boxen der Gruppe ins Resultat der linken Seite. Und auf der rechten Seite fehlt die entsprechende Anzahl. Dasselbe Problem tritt übrigens auch auf, wenn die Boxen "nur" ausgewählt sind.

Der Befehl 'tell text box j' generiert eine Fehlermeldung, sobald der Wert des Zählers 'j' die tatsächliche Anzahl Boxen der aktuellen Seite übersteigt.

Abhilfe: entweder Gruppierungen – welche über zwei Seiten reichen –, vermeiden, oder anstelle der Seiten, die Arbeitsflächen adressieren:
---
tell document 1 of application "QuarkXPress 6.1"
  repeat with i from 1 to count of spreads
    tell spread i
---

Manchmal muss man aber trotzdem die Boxen seitenweise durchgehen und man hat nicht immer die Kontrolle über das Dokument, bzw. will gelieferte Dokumente nicht vorgängig auf "verbotene" Gruppierungen untersuchen. In diesem Fall bleibt nur die Möglichkeit, eine "ewige" Wiederholschleife zu verwenden, in Verbindung mit einem 'try/on error'-Konstrukt. Bei einem Fehler wird die Schleife verlassen.
---
tell document 1 of application "QuarkXPress 6.1"
  repeat with i from 1 to count of pages
    tell page i
      set ctr to 1
      repeat
        try
          tell text box ctr
            --Hier weitere Befehle
          end tell
        on error
          exit repeat
        end try
        set ctr to ctr + 1
      end repeat
    end tell
  end repeat
end tell
---
Weil eine ewige Repeatschleife keinen automatischen Zähler hat, muss man eine Variable initialisieren (hier 'set ctr to 1') und dann innerhalb der Schleife um 1 erhöhen: 'set ctr to ctr + 1'.

Wenn die angesprochene Box nicht existiert, dann ergibt dies einen Fehler und die Bedingung, welche im 'on error'-Teil definiert ist, wird ausgeführt, nämlich 'exit repeat'. Die Wiederholschleife wird also verlassen und zwar nur die innere. Die äussere, jene welche die Seiten durchgeht, ist von diesem 'exit' nicht betroffen.

Hans Haesler <[email protected]>
X

Aktuell

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
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/