[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

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

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

JonesRidder
Beiträge gesamt: 85

2. Mai 2011, 11:57
Beitrag # 1 von 15
Bewertung:
(5034 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

habe das Problem, dass Suchen/Ersetzen per Script nicht klappt - über Suchfenster in InDesign Benutzeroberfläche aber schon.

Im Suchfenster gebe ich folgende Dinge ein:
Suchen nach: <008D>
Ändern in: 4
Durchsuchen: Dokument
Format ersetzen: Zeilenformat, Pfeil
Format suchen: Absatzformat, Material 1 Seite

Mein aktueller Script Teil dazu (da funtkionierts nicht):
Code
//search([SUCHTEXT, GANZES_WORT, GROSS-/KLEINSCHREIBUNG, ERSATZTEXT, {GESUCHTE_FORMATIERUNG}, {ERSATZFORMATIERUNG});  
//http://www.hilfdirselbst.ch/foren/Suchen_und_ersetzen_-_kleines_Script-Problem_P274793.html
//TESTEN
_dok.search('<008D>', false, false, "4", {applied:"Material 1 Seite"}, {appliedParagraphStyle:"Pfeil"});

Wo kann ich dem Script sagen, dass er im Dokument suchen soll (vielleicht liegts dadran, dass es nicht geht)?

Habe mir schon einige Thrads angesehen hier, komme aber trotzdem nicht weiter.
Weiß jemand Rat?

Gruß
J.R.
X

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Martin Fischer
  
Beiträge gesamt: 12732

2. Mai 2011, 12:16
Beitrag # 2 von 15
Beitrag ID: #470379
Bewertung:
(5022 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jones,

die Syntax Deines Ersetze-Befehls hat die Struktur für ein CS2-Skript.

Wenn Du das Skript nicht im Version-4 Emulations-Modus (app.scriptPreferences.version = 4.0;) laufen lassen möchtest, schreib es um in die aktuelle Struktur.

Setze die entsprechenden Einstellungen in den findTextPreferences und in den changeTextPreferences und ersetze mit _doc.changeText();.

Beim Finden der Preferences hilft RecordFindChange_CS3-CS5.jsx



Nebenbei: es gibt keine Property mit dem Namen applied.
Konkretisiere appliedCharacterStyle, appliedParagraphStyle, appliedObjectStyle ...


als Antwort auf: [#470375]
(Dieser Beitrag wurde von Martin Fischer am 2. Mai 2011, 12:21 geändert)

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

JonesRidder
Beiträge gesamt: 85

2. Mai 2011, 14:00
Beitrag # 3 von 15
Beitrag ID: #470389
Bewertung:
(5004 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die schnelle Antwort Martin Fischer.

"es gibt keine property "applied"
... mein Fehler, da muss stehen: " ... appliedCharacterStyle ...."

"... emulationsmodus ..."
Nein, am besten ohne Emulationsmodus.

Gibt es denn keine Möglichkeit, die gesamte suchen/ersetzen Prozedur komplett im Code zu definieren (ohne zusätzliche Datei o.ä.), wenn ja wie muss der Code dafür aussehen?
So:
Code
_doc.changeText("<008D>",  false, false, "4", {appliedCharacterStyle:"Material 1 Seite"}, {appliedParagraphStyle:"Pfeil"}) 

?

gruß
J.R.


als Antwort auf: [#470379]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Martin Fischer
  
Beiträge gesamt: 12732

2. Mai 2011, 14:17
Beitrag # 4 von 15
Beitrag ID: #470393
Bewertung:
(4996 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eine Einzeiler-Lösung ist mir nicht bekannt.

So geht's seit CS3.

Code
app.findChangeTextOptions.caseSensitive = false; 
app.findChangeTextOptions.wholeWord = false;

app.findTextPreferences.findWhat = "<008D>";
app.findTextPreferences.appliedCharacterStyle = "Material 1 Seite";

app.findTextPreferences.changeTo = "4";
app.findTextPreferences.appliedParagraphStyle = "Pfeil";

_dok.changeText();



als Antwort auf: [#470389]
(Dieser Beitrag wurde von Martin Fischer am 2. Mai 2011, 14:18 geändert)

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

JonesRidder
Beiträge gesamt: 85

2. Mai 2011, 14:43
Beitrag # 5 von 15
Beitrag ID: #470396
Bewertung:
(4986 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Ganze klingt sehr plausibel, aber es funktioniert immer noch nicht.
Ich vermute, dass es daran liegen könnte, dass nirgends wo im Code gesagt wird, dass im Dokument gesucht werden soll
Das war auch im Suchfenster der Fall, dass ich explicit bei "Durchsuchen:" von "Textabschnitt" auf "Dokument" umschalten musste - erst dann hat er das Suchen/Ersetzen richtig ausgeführt.
Auf indesignscriptingreference.com konnte ich auch keinen passenden Befehl finden, der dies ausdrückt.
Irgend eine Idee?

Gruß
J.R.


als Antwort auf: [#470393]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Martin Fischer
  
Beiträge gesamt: 12732

2. Mai 2011, 15:29
Beitrag # 6 von 15
Beitrag ID: #470399
Bewertung:
(4962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ich vermute, dass es daran liegen könnte, dass nirgends wo im Code gesagt wird, dass im Dokument gesucht werden soll

Doch, hier steht's:

Code
_dok.changeText(); 


Welche Ersetzeneinstellungen stehen nach Ausführung des Skripts in der Textersetzen-Palette?
Wird mit diesen Einstellungen manuell etwas gefunden?


Zum Einstieg ins Skripten von InDesign empfehle ich das Buch InDesign automatisieren von Gregor Fellenz.
Ab S. 185 findest Du die grundlegenden Angaben zum Suchen und Ersetzen per JavaScript.


als Antwort auf: [#470396]
(Dieser Beitrag wurde von Martin Fischer am 2. Mai 2011, 15:44 geändert)

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Hans Haesler
  
Beiträge gesamt: 5822

2. Mai 2011, 15:50
Beitrag # 7 von 15
Beitrag ID: #470402
Bewertung:
(4950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jones,

wenn es immer noch nicht geht, dann sind vielleicht Einträge schuld, welche von Deinen manuellen Versuchen noch vorhanden sind. Diese können mit zwei Zeilen entfernt werden (siehe nachstehenden Code).

Zum anderen hat Martin (so zuverlässig, wie er sonst immer ist ;-), das Zeichen- und Absatzformat ausgewechselt. Und beim Vorbereiten des Ersetzen-Strings und der Ersetzen-Option find benutzt (statt change).

Versuche es bitte mal damit:

Code
// das Dokument 
_dok = app.documents[0];

// vorhandene Einträge entfernen
app.findTextPreferences = app.changeTextPreferences = null;
app.findChangeTextOptions = null;

// zwei Optionen (eigentlich überflüssig, weil 'false')
app.findChangeTextOptions.caseSensitive = false;
app.findChangeTextOptions.wholeWord = false;

app.findTextPreferences.findWhat = "<008D>";
app.findTextPreferences.appliedParagraphStyle = "Material 1 Seite";

app.changeTextPreferences.changeTo = "4";
app.changeTextPreferences.appliedCharacterStyle = "Pfeil";

// das Ersetzen ausführen
_dok.changeText();

Gruss, Hans


als Antwort auf: [#470399]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Martin Fischer
  
Beiträge gesamt: 12732

2. Mai 2011, 15:59
Beitrag # 8 von 15
Beitrag ID: #470404
Bewertung:
(4937 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Antwort auf: Und beim Vorbereiten des Ersetzen-Strings und der Ersetzen-Option find benutzt (statt change).


Danke für den Hinweis.
Ein schusseliger Copy&Paste Fehler von mir.


als Antwort auf: [#470402]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

Quarz
Beiträge gesamt: 3529

2. Mai 2011, 16:09
Beitrag # 9 von 15
Beitrag ID: #470409
Bewertung:
(4926 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo J.R.

ich kann das Buch, das Martin angesprochen
hat InDesign automatisieren von Gregor Fellenz
nur 'wärmstens' empfehlen.

Ich bin sehr begeistert ;-))


Gruß
Quarz

-------------------------------------------
InDesign CS5 7.04 | Win7/64 Prof.



als Antwort auf: [#470399]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

JonesRidder
Beiträge gesamt: 85

3. Mai 2011, 08:47
Beitrag # 10 von 15
Beitrag ID: #470434
Bewertung:
(4863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es funktioniert (Hans Haeslers Vorschlag) ...

Danke an alle Helfer!

Vom Buch "InDesign automatisieren" habe ich auch schon viel gesehen (Leseproben, Scripte auf der Seite) sollte man sich vielleicht doch anschaffen (auch wenn ich wahrscheinlich nie wieder was in meinem Leben mit InDesign zu tun haben werde ...)

Gruß an alle - bin immer wieder erstaunt, wie Kompetent die Helfer (Experten!) in diesme Forum sind ...

J.R.


als Antwort auf: [#470409]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

alexatr
Beiträge gesamt: 3

28. Jun 2011, 20:44
Beitrag # 11 von 15
Beitrag ID: #474663
Bewertung:
(4487 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Erstmal Danke, dass es Leute wie euch gibt die das so klar und einfach erklären.

Zwei Fragen habe ich allerdings dazu.
ich übergebe aus der Datenbank einfach Steuerzeichen damit ich damit suchen kann und auf das entsprechende Absatzformat umschalten kann.

1. Dieses Absatzformat sollte so lange aktiv bleiben, bis das nächste Steuerzeichen kommt und auf ein anderes Format umgeschaltet wird. (Momentan wird natürlich immer nur bis zur nächsten Absatz-Marke geändert

2. und jetzt oute ich mich natürlich als absoluter Rookie - ich schaffe es nicht, durch nichts zur ersetzen - wenn ich "" angebe, bleibt mein Steuerzeichen einfach stehen, wenn ich es zum Beispiel durch ein " " Space ersetze, geht es klaglos. Ich brauch das, weil ich die Steuerzeichen ja nacher aus dem Text verbannen möchte.

Wäre toll, wenn ihr mir da helfen könntet.


als Antwort auf: [#470434]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

WernerPerplies
Beiträge gesamt: 2730

28. Jun 2011, 21:20
Beitrag # 12 von 15
Beitrag ID: #474671
Bewertung:
(4476 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Geht das, was Du machen willst, per Suchen- und Ersetzendialog in InDesign?

Wenn ja, benutze dieses Script
http://indesign.hilfdirselbst.ch/...ange-cs3-cs5jsx.html
zum Erzeugen eines Listeneintrags für das FindChangeByList-Script.

Wenn Du willst, kannst Du dann mit meiner Variante des FindChangeByList-Skripts automatisch ein/mehrere Skript/e erzeugen, dass Deine Ersetzung direkt ohne Liste durchführt.

Mein Skript befindet sich noch in Testphase, näheres findest Du hier:
http://www.hilfdirselbst.ch/..._P474354.html#474354


als Antwort auf: [#474663]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

alexatr
Beiträge gesamt: 3

28. Jun 2011, 21:43
Beitrag # 13 von 15
Beitrag ID: #474673
Bewertung:
(4467 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für Deine prompte Antwort.
Bin darauf gekommen, dass man in InDesign zwar nach Texten suchen kann und diese durch nichts ersetzen kann, aber nicht, wenn man einen Formatwechsel macht - daher hat Schweinchen Schlau jetzt einfach durch einen bedingten Trennstrich ersetzt - ist im Endeffekt auch nichts (zumindest am Zeilanfang, wo ich es brauche)

Eine Idee, wie ich es schaffen würde bei dem Absatzformat zu bleiben auch wenn Absatzmarken folgen?
Sprich - es soll so lange im Lauftext formatiert werden, bis eine Sonderzeichenfolge kommt, die dann eine Überschrift bedeutet.

Ich könnte natürlich von Anfang an alles als Fließtext formatieren und dann nur die Überschrift machen, aber wenn es dann mehr als 2 Formate sind, ist es auch schon wieder vorbei mit dem Trick.


als Antwort auf: [#474671]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

alexatr
Beiträge gesamt: 3

28. Jun 2011, 21:47
Beitrag # 14 von 15
Beitrag ID: #474674
Bewertung:
(4465 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Übrigens sehr geiles Script.

Macht exakt, was es soll und dass Du an solche Kleinigkeiten denkst, dass er es am Schreibtisch sichert und dann auch gleich öffnet gefällt mir extrem.
Das sind die Dinge, die einem das Leben erleichtern.


als Antwort auf: [#474671]

Suchen/Ersetzen per JScript klappt nicht (InDesign CS5, Windows)

WernerPerplies
Beiträge gesamt: 2730

29. Jun 2011, 07:38
Beitrag # 15 von 15
Beitrag ID: #474683
Bewertung:
(4409 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nein, da hast Du etwas verwechselt, dieses Skript ist nicht von mir, sondern von Martin Fischer: http://indesign.hilfdirselbst.ch/author/2/

Mein Skript gibt es während der Testphase nur auf Anforderung per Mail.

Unter anderem erzeugt es für jeden markierten Listeneintrag ein Standalone-Skript.

Die notwendigen Anweisungen können auch über Martins Skript im Kommentarfeld eingegeben werden.


als Antwort auf: [#474674]
X