hilfdirselbst.ch
Facebook Twitter gamper-media
Marco Morgenthaler S
Beiträge: 2474
13. Mai 2008, 12:49
Beitrag #1 von 13
Bewertung:
(24304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Hallo

Bekanntlich gibt es in Indesign CS3 die Möglichkeit, benutzerdefinierte Abfragen im Suchen/Ersetzen-Fenster unter eigenem Namen abzuspeichern. Eine komplizierte GREP-Abfrage, allenfalls ergänzt mit Formatsuche usw., kann so später einfach wieder hervorgeholt werden.

Schon lange wünschte ich mir ein Skript, dass mehrere dieser gespeicherten Abfragen automatisch ausführt. Heute hat mich Peter Kahrel netterweise darauf hingewiesen, dass im Adobe-Skript-Forum folgendes einfache Skript existiert:


Code
app.loadFindChangeQuery ('query_a', SearchModes.grepSearch); 
app.activeDocument.changeGrep();

app.loadFindChangeQuery ('query_b', SearchModes.grepSearch);
app.activeDocument.changeGrep();


Im obigen Skript müssen query_a bzw. query_b durch entsprechende Suchabfragen ersetzt werden. Diese befinden sich als xml-Dateien in Ordnern «Find-Change Queries» (separate Ordner für vordefinierte und selbst definierte). Im Skript die Namen ohne xml-Endung einfügen (z. B. 'Strich in Halbgeviertstrich').

Das Skript habe ich bei mir als jsx gespeichert, ein Testlauf war erfolgreich.

Vielen Dank an Peter für den Hinweis und natürlich an den Entwickler des Skripts (ich habe allerdings keinen Link auf das Adobe-Skript-Forum).

Weiterhin einen schönen Tag und Gruss
Marco

iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium) | CS6 Design Standard | www.manuseum.ch Top
 
X
Gerald Singelmann  M  p
Beiträge: 6178
13. Mai 2008, 13:28
Beitrag #2 von 13
Beitrag ID: #350033
Bewertung:
(24219 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


http://www.adobeforums.com/...n/webx?13@@.3bbf275d

"FindChangeByList" ist natürlich nicht ganz das Gleiche, aber wenigstens bekannt, oder?
als Antwort auf: [#350022] Top
 
Marco Morgenthaler S
Beiträge: 2474
13. Mai 2008, 13:32
Beitrag #3 von 13
Beitrag ID: #350035
Bewertung:
(24217 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Kleiner Nachtrag: Inzwischen habe ich den Beitrag im Adobe-Skript-Forum gefunden. Der Thread ist unter http://www.adobeforums.com/webx/.59b51c39

Das obige Skript, das offenbar von Peter selbst geschrieben wurde, bezieht sich auf mehrere GREP-Abfragen. Daneben könnten auch Text-, Glyphen- oder Objektabfragen kombiniert werden (Skript entsprechend umschreiben).

Gruss Marco

iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium) | CS6 Design Standard | www.manuseum.ch
als Antwort auf: [#350022] Top
 
dima4ka
Beiträge: 51
19. Jun 2009, 13:31
Beitrag #4 von 13
Beitrag ID: #399702
Bewertung:
(22403 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Antwort auf [ Marco Morgenthaler ] Kleiner Nachtrag: Inzwischen habe ich den Beitrag im Adobe-Skript-Forum gefunden. Der Thread ist unter http://www.adobeforums.com/webx/.59b51c39

Das obige Skript, das offenbar von Peter selbst geschrieben wurde, bezieht sich auf mehrere GREP-Abfragen. Daneben könnten auch Text-, Glyphen- oder Objektabfragen kombiniert werden (Skript entsprechend umschreiben).

Gruss Marco

wie könnte ein beispiel ausschauen wenn z.b. nach dem GREP suche
.{10}\s*$
und das gefundene in zeichenformat Z1 ändern möchte.
(nur markierten text)
als Antwort auf: [#350035] Top
 
Marco Morgenthaler S
Beiträge: 2474
19. Jun 2009, 14:27
Beitrag #5 von 13
Beitrag ID: #399708
Bewertung:
(22381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Hallo Dima

Nichts für ungut, aber ich klink mich jetzt aus.
Siehe auch http://www.hilfdirselbst.ch/..._P375231.html#375231

Am einfachsten wirst du in der Indesign-Hilfe fündig.

iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium) | CS6 Design Standard | www.manuseum.ch
als Antwort auf: [#399702] Top
 
dima4ka
Beiträge: 51
19. Jun 2009, 14:27
Beitrag #6 von 13
Beitrag ID: #399711
Bewertung:
(22377 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Antwort auf [ Marco Morgenthaler ] Hallo Dima

Nichts für ungut, aber ich klink mich jetzt aus.
Siehe auch http://www.hilfdirselbst.ch/..._P375231.html#375231

Am einfachsten wirst du in der Indesign-Hilfe fündig.


danke, bin halt ein anfänger. sorry
als Antwort auf: [#399708] Top
 
Stephan_M S
Beiträge: 453
19. Jun 2009, 14:31
Beitrag #7 von 13
Beitrag ID: #399712
Bewertung:
(22374 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Grandios! Habe schon so oft gedacht das ich es jetzt brauchen könnt', hab's aber nie verfolgt. Vielen Dank fürs mitteilen, Herr Morgenthaler.

@Dima4k.
Das obige Skriptchen löst lediglich Suchen/Ersetzen-Abfragen aus, die sie sich vorher schon im Suchen/Ersetzen-Dialog (durch klicken auf das Disketten-Symbol) als eigene Suche/Ersetzen-Abfragen gespeichert haben.

Ich habe mir da zum Beispiel "1 Unterschneiden", "Klammern spationieren", oder "Versalwörter finden" gespeichert. Diese drei Abläufe könnte ich mit dfem Skript nun in einem Rutsch ausführen.
als Antwort auf: [#399702] Top
 
dima4ka
Beiträge: 51
19. Jun 2009, 14:50
Beitrag #8 von 13
Beitrag ID: #399715
Bewertung:
(22362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Antwort auf [ Stephan_M ] Grandios! Habe schon so oft gedacht das ich es jetzt brauchen könnt', hab's aber nie verfolgt. Vielen Dank fürs mitteilen, Herr Morgenthaler.

@Dima4k.
Das obige Skriptchen löst lediglich Suchen/Ersetzen-Abfragen aus, die sie sich vorher schon im Suchen/Ersetzen-Dialog (durch klicken auf das Disketten-Symbol) als eigene Suche/Ersetzen-Abfragen gespeichert haben.

Ich habe mir da zum Beispiel "1 Unterschneiden", "Klammern spationieren", oder "Versalwörter finden" gespeichert. Diese drei Abläufe könnte ich mit dfem Skript nun in einem Rutsch ausführen.

ja das klappt bei mir soweit so gut. jedoch wenn ich das gefundene in ein Zeichenformat ersetzen möchte löscht er das gefundene einfach.
komisch.
hier dier code:
Code
//Suchfelder zurücksetzen  
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
//Suchen
app.findGrepPreferences.findWhat = "».+?« +\(.+?\)";
//Ersetzen
applyCharacterStyle= "ZF"
app.activeDocument.changeGrep ();
//Clear the find/change preferences after the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

als Antwort auf: [#399712] Top
 
Stefan Oe S
Beiträge: 42
2. Aug 2010, 17:39
Beitrag #9 von 13
Beitrag ID: #447976
Bewertung:
(20082 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Hallo,
ich habe den unten angegebenen Script so geladen wie beschrieben – in InDesign CS4 – und bekomme die Fehlermeldung:
»JavaSript Fehler, Fehlernr. 33800 Fehlerzeichenfolge: Abfragedatei nicht gefunden.«

Die Suchen&Ersetzen-XML-Dateien liegen im Ordner Find-Change Queries > Text – also dort, wo sie von InDesign automatisch abgelegt werden.
Frage: Müssen die Dateien woanders liegen oder muss im Script der Ort angegeben werden? Falls ja, wie?

Code
app.loadFindChangeQuery ('query_a', SearchModes.grepSearch); 
app.activeDocument.changeGrep();

app.loadFindChangeQuery ('query_b', SearchModes.grepSearch);
app.activeDocument.changeGrep();


Im obigen Skript müssen query_a bzw. query_b durch entsprechende Suchabfragen ersetzt werden. Diese befinden sich als xml-Dateien in Ordnern «Find-Change Queries» (separate Ordner für vordefinierte und selbst definierte). Im Skript die Namen ohne xml-Endung einfügen (z. B. 'Strich in Halbgeviertstrich').
Viele Grüße,
Stefan Oe
als Antwort auf: [#350022] Top
 
Ralf Hobirk p
Beiträge: 5748
2. Aug 2010, 17:59
Beitrag #10 von 13
Beitrag ID: #447978
Bewertung:
(20077 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Hallo,
Antwort auf: liegen im Ordner Find-Change Queries > Text

Dann handelt es sich nicht um eine GREP-, sondern um eine Text-Abfrage und der entsprechende Script-Code muss lauten:

Code
app.loadFindChangeQuery ('query_a', SearchModes.textSearch);  
app.activeDocument.changeText();


---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#447976] Top
 
Stefan Oe S
Beiträge: 42
5. Aug 2010, 15:11
Beitrag #11 von 13
Beitrag ID: #448278
Bewertung:
(19993 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Vielen Dank! Jetzt klappt's prima.
Viele Grüße,
Stefan Oe
als Antwort auf: [#447978] Top
 
Prepressure
Beiträge: 8
20. Okt 2013, 22:17
Beitrag #12 von 13
Beitrag ID: #518660
Bewertung:
(13656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


Super Skript! Problematisch sehe ich, dass das Skript immer global auf jeden Text im Dokument angewandt wird.

Gibt es eine Möglichkeit, dass das Skript nur auf ausgewählten Text angewandt wird?

Vielen Dank!!!
als Antwort auf: [#350022] Top
 
Uwe Laubender S
Beiträge: 3986
21. Okt 2013, 08:55
Beitrag #13 von 13
Beitrag ID: #518665
Bewertung:
(13612 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Skript, um mehrere Suchen/Ersetzen-Abfragen zu kombinieren


@Prepressure – ja, gibt es.

Anstatt:

Code
app.activeDocument.changeGrep(); 


oder bei einer Textsuche/Textersetzung:

Code
app.activeDocument.changeText(); 


das das aktive Dokument anspricht, könnte man z.B. auch eine Auswahl ansprechen:

Code
app.selection[0].changeGrep(); 


Respektive für die Textsuche/Textersetzung:

Code
app.selection[0].changeText(); 


Manchmal ist es besser die Ersetzung in umgekehrter Reihenfolge der Suchergebnisse zu machen. Beide Methoden haben dazu einen zusätzlichen Parameter. Setz man den auf den Wert "true", wird das Ergebnis der Suche in umgekehrter Reihenfolge abgearbeitet:

Code
app.selection[0].changeGrep(true); 

*****
Mit herzlichem Gruß,
Uwe Laubender
als Antwort auf: [#518660] Top
 
X