[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt StartupScript GREP

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

StartupScript GREP

klasinger
Beiträge gesamt: 1646

26. Apr 2011, 15:45
Beitrag # 1 von 3
Bewertung:
(1279 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Scripter,

bei einem Projekt sollen über 200 Begriffe mit einem Zeichenformat ausgezeichnet werden - bei den GREP-Stilen ist ja leider bei 99 Schluss.

Nun dachte ich das selbe per Script zu realisieren, welches als Startup Script laufen soll, damit es sich eben wie ein Grepstil verhält.
Das Code lautet:
Code
app.loadFindChangeQuery ('MeineGrepSuche1', SearchModes.grepSearch);   
app.activeDocument.changeGrep ();
app.loadFindChangeQuery ('MeineGrepSuche2', SearchModes.grepSearch);
app.activeDocument.changeGrep ();
usw...

Problem 1: Funktioniert das theoretisch überhaupt so, wie ich es denke?
Problem 2: Ist das aus Performancesicht sinnvoll?
problem 3: Beim Starten von ID mekert das Script, da kein Dokument offen ist. Ein Workaround habe ich nicht hinbekommen; der erste Ansatz:
Code
if (app.documents.length < 1) { 
$.sleep(3000);}
else {...


Am wichtigsten sind mit Punkt 1/2 - dann weiß ich, ob ich es überhaupt weiterverfolgen sollte...

Das Ganze läuft unter CS5/Mac.

Vielen Dank vorab!
X

StartupScript GREP

Martin Fischer
  
Beiträge gesamt: 12691

26. Apr 2011, 15:53
Beitrag # 2 von 3
Beitrag ID: #469878
Bewertung:
(1277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Klaas,

ich würde das nicht in ein Startup- und auch nicht in ein Event-Skript packen.
Vermutlich brauchst Du das pro Dokument nur einmal. Bei einem Event-Skript würdest Du riskieren, den Ersetzevorgang wiederholt – beim Eintreffen des Events – auszuführen.

Ein Startup-Skript wird beim Start von Indesign ausgeführt.
Und beim Start von InDesign ist noch kein Dokument offen.

Theoretisch sollte Dein Skript so funktionieren (siehe auch Marcos Hinweis auf ein entsprechendes Skript von Peter Kahrel).
Aber bei der Zahl an Ersetzungen würde ich eine entsprechende Liste für FindChangeByList.jsx erstellen. Dann brauchst Du Dir nicht jedes Ersetzungsset als Query speichern. Die Übersicht könnte darunter leiden.

Und wenn Du in der Liste für FindChangeByList.jsx mal einen Eintrag angelegt hast, dann lässt sich dieser für einen nur geringfügig unterschiedlichen Eintrag leicht duplizieren und abändern.


Antwort auf: bei den GREP-Stilen ist ja leider bei 99 Schluss.


Hast Du in einem größeren Dokument schon mal die Verwaltung von 99 GREP-Stilen umgesetzt und danach einen Ersetze-Vorgang gestartet?
Nach meinen Erfahrungen bremsen bereits wenige GREP-Stile die Ausführung eines Ersetzen-Befehls deutlich herunter. Wie sehr verändert sich die Bremskraft, wenn man die Zahl der 99 möglichen GREP-Stile ausschöpft?


als Antwort auf: [#469876]
(Dieser Beitrag wurde von Martin Fischer am 26. Apr 2011, 16:01 geändert)

StartupScript GREP

klasinger
Beiträge gesamt: 1646

26. Apr 2011, 16:38
Beitrag # 3 von 3
Beitrag ID: #469884
Bewertung:
(1260 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

vielen Dank für dein Feedback. Ich werde es auf diesem Wege also lieber sein lassen.
Bis dato waren es Vorüberlegungen, die Datei existiert noch nicht – ich wollte mir nicht die Mühe machen alle Stile anzulegen und dann reinzufallen – was ja wohl auch klug war.

FindCange hatte ich bis dato ausgeklammert, die die Datei im Nachhinein in GREPunkundige hände fällt, daher eben auch GREP-Stile...

Ich werde es aber spaßenhalber mal probieren, ob es statt 90 GREP-Stilen ID schadet eine sehr langen GREP-Such-String mit vielen ODER-Verknüpfungen (|) zu verwenden.


als Antwort auf: [#469878]