der verankerte Bildrahmen ist aktiv und ich möchte gerne auf den Absatz zugreifen, in dem der Bildrahmen verankert ist. So weit bin ich:
ich bekomme:
Aber wie komme ich an den Inhalt, zum Beispiel die 5007? Ich habe schon eine Fehlermeldung provoziert und versucht mit find text (satimage.osax) an die Zahl meiner Wünsche zu gelangen, aber das scheint in ID nicht zu funktionieren … Goar --- > iMac 27" 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 < > iMac 27" 3,1 GHz Intel 6 Core i5, 16 GB, MacOS 10.15.5, QXP 2019/2020 <
die zweite Generation nach oben hatte ich schon ausprobiert, damit habe ich die story, aber noch lange nicht den gesuchten Absatz, zumal die story auch keinerlei Spur meines verankerten Rahmens enthält.
Aber ich habe es als Fingerzeig genommen, in diese Richtung zu gehen. Und weitab vom Rechner ist mir der Weg klarer geworden.
Der verankerte Rahmen, um den es geht, ist angeklickt.
Zunächst sammle ich die Namen der Absatzformate aller 1152 Absätze ein. Dann prüfe ich in einer repeat-Schleife jeden einzelnen Namen, ob er mit "Bild" beginnt; die verankerten Rahmen stehen alle in solchen Bild-Absätzen, die auch sonst nichts enthalten.
Sobald das Skript einen Bild-Absatz gefunden hat, ermittelt es über all graphics die Referenz des dort verankerten Rahmens und vergleicht sie mit der des angeklickten Rahmens. Wenn beide identisch sind, habe ich gleichzeitig den Index des Absatzes und den Namen seines Formates und damit alle Infos, die ich für das weitere Vorgehen brauche. An der Stelle verlasse ich die repeat-Schleife.
Und so sieht es aus:
Auf den ersten Seiten ist das Script recht flott, auf den letzten aber deutlich langsamer, weil es ja immer mehr Absätze prüfen muss, bis es auf die korrekte Referenz trifft.
Daher träume ich noch immer von einem kürzeren Weg vom angeklickten verankerten Rahmen zu dem Absatz, in dem er steht. In der Referenz ist ja die Information enthalten, an welchem character x der Rahmen steht, und die Absätze zu zählen, die im Text von Zeichen 1 bis x der story stehen, sollte das kleinste Problem sein.
Nun erinnere ich mich dunkel, dass, wenn find text nicht funktioniert (s.o., warum eigentlich nicht?) es vielleicht mit der "reinen" AS-Lösung per AppleScript's text item delimiters geht …
Falls Dir zu dem Ganzen etwas durch den Kopf geht: ich lerne gerne dazu.
es geht mir etwas in der Richtung durch den Kopf. Aber ich müsste es zuerst ausprobieren.
Kann ich aber erst im Laufe des Abends, denn jetzt befinde ich mich im wunderschönen Freibad von Lausanne. :-) Sonnenschein, kaum eine Wolke, 30 Grade (die Wassertemperatur um die 24).
ich hatte zu Beginn nicht richtig hingeschaut, was Du genau brauchst. Doch jetzt bin ich mir immer noch nicht sicher. Deshalb nachstehend ein paar Helfer.
So bekommst Du den Inhalt des Absatzes:
Und so eine Objektreferenz.
Und hiermit die Properties.
Weil ein Absatz keinen Index hat, muss man sich so behelfen, um die Nummer des aktuellen Absatzes festzustellen.
Und schliesslich noch den Namen des aktuellen Absatzformates:
das meiste davon hatte ich schon, aber über diese ausführliche Darstellung werden sich sicher einige Skripter freuen!
(Ein paar km nördlich von Deinem Freibad habe ich mir einen 27,5-km-Lauf in welligem Gelände angetan, bei ähnlichen Witterungsbedingungen. Beeindruckend.)
Für mein Problem war das der Volltreffer:
weil ich damit ohne Tricks die Position meines Bildrahmens in der story erhalte, was mir über die Referenz des Bildrahmens …
… nicht gelungen ist, obwohl die gesuchte Information (104105) darin enthalten ist.
Die repeat-Schleife braucht für Bildrahmen am Ende der Textkette viel Zeit (8 bis 10 Sekunden), bis die paraNumber ermittelt ist. Stattdessen habe ich den Text bis zur Position des insertion point aufgenommen und die Anzahl der darin enthaltenen Absätze festgestellt. Das funktioniert auch am Ende der Textkette noch in gefühlter Echtzeit.
bitteschön. Gut, dass das Script jetzt das Ergebnis schneller liefert.
27,5 km? War das der Langstreckenlauf um den Köterberg? Und Erster Deiner Altersklasse? Respekt! :-)
Übrigens: Die Referenz der Position des Bildrahmens ist nun mal eine ... Referenz (eine Beschreibung) und keine Textkette. Deshalb kann die Satimage-OSAX auch nicht eingesetzt werden.
vor längerer Zeit habe ich von Dir die Krücke abgeguckt, wie man aus einer Referenz eine Textkette macht, indem man nämlich eine Fehlermeldung provoziert. Aber vielleicht ist dabei irgendwas schief gegangen.
(Oh, Hans, bist Du gut im Recherchieren! Die Frage, ob es der war, ist ja wohl nur rhetorisch, wie der nächste Satz zeigt.)