[GastForen Programme Print/Bildbearbeitung Adobe InDesign Suchen/Ersetzen Script mittels Liste

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

Suchen/Ersetzen Script mittels Liste

Harald Zwer
Beiträge gesamt: 306

5. Nov 2008, 11:02
Beitrag # 1 von 11
Bewertung:
(15995 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich bin auf der Suche nache einem einfache Script für CS3, welches ein Suchen/Ersetzen vornimmt. Im Tutorial habe ich es leider nicht gefunden. Vielleicht ist es zu einfach?

Ich möchte in diesem Script eine Ersetzungsliste definieren. Also zum Beispiel:
Suche " " und ersetze durch "^s"

Vielen Dank für die Hilfe

Harald
X

Suchen/Ersetzen Script mittels Liste

Peter Sauseng
Beiträge gesamt: 487

5. Nov 2008, 11:25
Beitrag # 2 von 11
Beitrag ID: #373244
Bewertung:
(15988 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
In InDesign CS3 gibt es bei den "Skripten" unter "Anwendung / Samples / JavaScript" das Skript "FindChangeByList.jsx".

In der Datei "FindChangeList.txt" im Ordner "FindChangeSupport" kannst Du Deine Ersetzungsliste definieren.

Falls Du ein eigenständiges Skript schreiben möchtest, habe ich hier ein Beispiel:
Code
var myDoc = app.documents[0]; 

if (app.documents.length != 0){

var mySearch = new Array
var myReplace = new Array

mySearch[0] = "\\x{0080}"; myReplace[0] = "€";
mySearch[1] = "\\x{0081}"; myReplace[1] = "#";
mySearch[2] = "\\x{0082}"; myReplace[2] = "‚";
mySearch[3] = "\\x{0083}"; myReplace[3] = "ƒ";
mySearch[4] = "\\x{0084}"; myReplace[4] = "„";
mySearch[5] = "\\x{0085}"; myReplace[5] = "…";

// Zurücksetzen der Suchoptionen
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = false;

for (myCounter = 0; myCounter < mySearch.length; myCounter++){
app.findGrepPreferences.findWhat = mySearch[myCounter];
app.changeGrepPreferences.changeTo = myReplace[myCounter];
myDoc.changeGrep();
}

// Zurücksetzen der Suchoptionen
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

alert ("Alle Ersetzvorgänge durchgeführt!");
}
else{
alert ("Kein Dokument geöffnet.");
}


In diesem Beispiel wird die GREP-Suche verwendet. Wenn Du die Text-Suche verwenden möchtest, dann sind alle "findGrep" und "changeGrep"-Befehle durch "findText" bzw. "changeText" zu ersetzen.

Liebe Grüße, Peter


als Antwort auf: [#373237]

Suchen/Ersetzen Script mittels Liste

Harald Zwer
Beiträge gesamt: 306

5. Nov 2008, 14:53
Beitrag # 3 von 11
Beitrag ID: #373275
Bewertung:
(15945 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

vielen Dank für die wertvollen Hinweise!

Harald


als Antwort auf: [#373244]

Suchen/Ersetzen Script mittels Liste

Kalonji
Beiträge gesamt: 8

17. Mai 2019, 16:10
Beitrag # 4 von 11
Beitrag ID: #570253
Bewertung:
(14757 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

dein mittlerweile etwas in die Jahre gekommener Beitrag hat mir heute sehr geholfen - daher zunächst einmal vielen Dank dafür!

Ich habe mir auf dieser Basis nun etliche suchen&ersetzen-Schritte eingerichtet - diese möchte ich zur Sicherheit aber nur auf den aktiven Textabschnitt anwenden.

Ich bin absoluter Scripting-Neuling und habe bereits versucht, durch Internetrecherche eine Lösung zu finden. Auch hier im Forum wurde das Thema schon behandelt:
https://www.hilfdirselbst.ch/..._Skript_P252806.html

Leider ist mir die "Fachsprache" noch zu fremd bzw. verstehe ich trotz aller Bemühungen nicht, was ich tun muss...

Ich würde mich freuen, wenn mir hier jemand auf die Sprünge helfen könnte!

Danke & VG,
Christoph


als Antwort auf: [#373244]

Suchen/Ersetzen Script mittels Liste

Kai Rübsamen
  
Beiträge gesamt: 4684

20. Mai 2019, 11:22
Beitrag # 5 von 11
Beitrag ID: #570273
Bewertung:
(14604 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph, schau mal ob du oben Zugriff auf die ID-Skriptsammlung hast. Evtl. brauchst du den Status eines Members (über Spende). Hier gibt es "FindChangeByList_mod3.jsx". Dort hat Martin Fischer vor Jahren einen kleinen Dialog spendiert, wo du die aktuelle story auswählen kannst.


als Antwort auf: [#570253]

Suchen/Ersetzen Script mittels Liste

Kalonji
Beiträge gesamt: 8

27. Mai 2019, 14:00
Beitrag # 6 von 11
Beitrag ID: #570401
Bewertung:
(14254 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

vielen Dank für deine Antwort!
Ich habe das Script gefunden und getestet. Allerdings ist es ja so, dass dieses auf suchen & ersetzen per txt-Datei/Liste basiert, ich hingegen aber das eigenständige Script von Peter an meine Bedürfnisse angepasst habe. Mit meinen limiterten Kenntnissen habe ich keine Möglichkeit gefunden, die beiden Funktionsweisen miteinander zu kombinieren. Da ich schon über 100 feste suchen&ersetzen-Begriffe in das Script aufgenommen habe, würde ich die Arbeit nur ungern doppelt machen. Lässt sich der Dialog zur Auswahl der Story irgendwie in "mein" Script übernehmen oder hast du vielleicht noch eine andere Lösung für mich?

Danke & viele Grüße,
Christoph


als Antwort auf: [#570273]

Suchen/Ersetzen Script mittels Liste

Kalonji
Beiträge gesamt: 8

12. Jul 2019, 17:27
Beitrag # 7 von 11
Beitrag ID: #571097
Bewertung:
(12790 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
*push* ... hat sonst vielleicht jemand eine Idee, bzw. kann mir hier weiterhelfen?


als Antwort auf: [#570401]

Suchen/Ersetzen Script mittels Liste

Martin Fischer
  
Beiträge gesamt: 12783

12. Jul 2019, 18:32
Beitrag # 8 von 11
Beitrag ID: #571098
Bewertung:
(12779 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Versuch's mal damit.

Code
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "GREP-Ersetzungen.jsx"); 

function main()
{
if (app.documents.length == 0)
{
alert ("Kein Dokument geöffnet.");
exit();
}

var myDoc = app.documents.firstItem();
var mySearch = new Array;
var myReplace = new Array;
var myError = new Array;
var myRange = (app.selection.length > 0 && app.selection[0].hasOwnProperty('parentStory')) ? app.selection[0].parentStory : myDoc;

mySearch[0] = "\\x{0080}"; myReplace[0] = "€";
mySearch[1] = "\\x{0081}"; myReplace[1] = "#";
mySearch[2] = "\\x{0082}"; myReplace[2] = "‚";
mySearch[3] = "\\x{0083}"; myReplace[3] = "ƒ";
mySearch[4] = "\\x{0084}"; myReplace[4] = "„";
mySearch[5] = "\\x{0085}"; myReplace[5] = "…";

// Zurücksetzen der Suchoptionen
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = false;

for (myCounter = 0; myCounter < mySearch.length; myCounter++)
{
app.findGrepPreferences.findWhat = mySearch[myCounter];
app.changeGrepPreferences.changeTo = myReplace[myCounter];
try
{
myRange.changeGrep();
}
catch(e)
{
myError.push(mySearch[myCounter] + ' &#8594; ' + myReplace[myCounter] + ' :\t' + e.message);
};
}

// Zurücksetzen der Suchoptionen
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

if (myError.length > 0)
alert('Achtung!\n' + myError.join('\n'));
else
alert('Fertig!');
}



-----
edit:
War vorhin in Eile.
Deswegen noch ein Hinweis hinterher.
Das Skript arbeitet in Abhängigkeit einer möglichen Auswahl.
1. Ist nichts oder kein Textrahmen und keine Text ausgewählt, führt es die Ersetzungen über das gesamte Dokument aus.
2. Ist Text oder ein Textrahmen ausgewählt, dann ist der entsprechende Textabschnitt von den Ersetzungen betroffen.

Ein Strg-Z (Zurück) nach Ausführung des Skripts macht alle Änderungen wieder rückgängig.

Und noch eins.
Anwendern, welche die Ersetzungsliste noch nicht wie folgt aufgebaut haben,
Code
mySearch[0] = "\\x{0080}"; myReplace[0] = "€";   
mySearch[1] = "\\x{0081}"; myReplace[1] = "#";

empfehle ich, die Liste eher so aufzubauen:
Code
mySearch.push("\\x{0080}"); myReplace.push("€");  
mySearch.push("\\x{0081}"); myReplace.push("#");


Damit spart man sich die vielen doppelten Eingaben von Indices für den Array.


als Antwort auf: [#571097]
(Dieser Beitrag wurde von Martin Fischer am 12. Jul 2019, 20:35 geändert)

Suchen/Ersetzen Script mittels Liste

Peter Sauseng
Beiträge gesamt: 487

17. Jul 2019, 07:06
Beitrag # 9 von 11
Beitrag ID: #571115
Bewertung:
(12087 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für den Tipp bzgl. ".push", Martin!


als Antwort auf: [#571098]

Suchen/Ersetzen Script mittels Liste

Kalonji
Beiträge gesamt: 8

23. Jul 2019, 09:31
Beitrag # 10 von 11
Beitrag ID: #571186
Bewertung:
(11221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen, vielen Dank, Martin! Du hast mir sehr geholfen - das ist die Lösung aller Probleme (zumindest für mich ;-))

Eine kleine Anmerkung allerdings noch:
Nach meinen Tests wirkt sich diese Version des Scripts nur auf das gesamte Dokument aus (wenn nichts ausgewählt ist), bzw. auf den Textabschnitt bei angewähltem Textrahmen - nicht jedoch auf eine Textauswahl. Wenn ich Text ausgewählt habe und das Script laufen lasse, wird mir trotzdem alles bis zum Ende des Textabschnitts ersetzt.
In meinem Fall spielt das aber keine Rolle, ich kann bestens mit Textabschnitten arbeiten - wollte es nur kurz erwähnt haben.

Herzlichen Dank noch einmal!


als Antwort auf: [#571098]

Suchen/Ersetzen Script mittels Liste

voko
Beiträge gesamt: 9

27. Aug 2019, 16:18
Beitrag # 11 von 11
Beitrag ID: #571653
Bewertung:
(9126 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo in die Runde,
ich habe folgendes "Problem" zu lösen. Ich möchte aus ein Excelliste in einem Indesign-Dok. nach Werten aus "Spalte A" suchen und diese durch die jeweiligen Werte aus "Spalte B" ersetzen.

Ich bin der Meinung, ich bin hier schon ziemlich richtig, nur ich habe von der ganzen Scripterei leider gar keine Ahnung.

Wie gehe ich mit dem Code des Beispiel-Scripts um?
Was muss ich damit machen?

Ich würde mich freuen, wenn jemand mir, dem "Unwissenden DAU" verraten kann, was ich tun muss.

Gruß, Voko


als Antwort auf: [#571098]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow