[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Befehl "Weitersuchen" im Skript anwenden?

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

Befehl "Weitersuchen" im Skript anwenden?

Peter Sauseng
Beiträge gesamt: 477

17. Dez 2015, 15:33
Beitrag # 1 von 4
Bewertung:
(1419 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen!

Ich suche eine Möglichkeit, per Skript die nächste Fundstelle einer Suche mit vorgegebenen Kriterien im Dokument zu finden und zu markieren.

Mit
Code
result = app.activeDocument.findText(); 
app.select(result[0]);

wird ja immer die erste Fundstelle im gesamten Dokument gefunden.

Geht dies nur pro "Story" mit Eingrenzung des Bereichs mit itemByRange oder gibt es noch andere Möglichkeiten? Wie grenze ich den Bereich am besten ein?

Gruß, Peter
X

Befehl "Weitersuchen" im Skript anwenden?

WernerPerplies
Beiträge gesamt: 2709

17. Dez 2015, 16:42
Beitrag # 2 von 4
Beitrag ID: #545532
Bewertung:
(1391 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

schau doch mal, wieviel Elemente im Array result sind und was die Elmente 0 - ??? jeweils enthalten?


als Antwort auf: [#545528]

Befehl "Weitersuchen" im Skript anwenden?

Martin Fischer
  
Beiträge gesamt: 12691

17. Dez 2015, 17:24
Beitrag # 3 von 4
Beitrag ID: #545533
Bewertung:
(1364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

in Deinem Beispiel liefert die Variable result die Fundstellen als Array.
result[0] = 1. Treffer,
result[1] = 2. Treffer.

Die Reihenfolge hängt zunächst mit den Indizes der Stories und dann mit den Indizes der Fundstelle (erster Einfügepunkt) innerhalb der Stories zusammen.

Wenn Du eine "ordentliche" Reihenfolge wünscht, etwa, weil die erste (gefundene) Story nicht auf S. 1 beginnt, sondern auf S. 7 und die nächste (gefundene Story) auf S. 2, weil die Textabschnitte nicht in der Reihenfolge der Seiten erstellt wurden, dann musst Du den Array sortieren.

Code
result.sort(mySort); 

function mySort(a,b)
{
return a.parentTextFrames[0].parentPage.documentOffset > b.parentTextFrames[0].parentPage.documentOffset;
}


Dieses Beispiel berücksichtigt bei der Sortierung allein die Seite.
Du müsstest die Sortierungsfunktion noch erweitern zur Behandlung bei Treffern auf derselben Seite (a.parentTextFrames[0].parentPage.documentOffset == b.parentTextFrames[0].parentPage.documentOffset); hier also die Indizes der jeweils ersten Einfügepunkte vergleichen.


als Antwort auf: [#545528]
(Dieser Beitrag wurde von Martin Fischer am 17. Dez 2015, 17:25 geändert)

Befehl "Weitersuchen" im Skript anwenden?

Peter Sauseng
Beiträge gesamt: 477

21. Dez 2015, 15:30
Beitrag # 4 von 4
Beitrag ID: #545579
Bewertung:
(1161 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin!

Danke für den Tipp mit dem "index".
Für meine Zwecke reicht es, wenn ich die Fundstellen mit meiner aktuellen Cursorposition vergleiche. Sobald der Index der Fundstelle höher ist als der Index meiner Cursorposition, ist das meine Fundstelle, die ich markieren möchte.

Der Index der Stories muss natürlich auch berücksichtigt werden.

Gruß, Peter


als Antwort auf: [#545533]
X