[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:
(10086 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: 404

5. Nov 2008, 11:25
Beitrag # 2 von 11
Beitrag ID: #373244
Bewertung:
(10079 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

---------------------------------------------------------------------
InDesign CC 2018 | Windows 10 Pro (64-bit)


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:
(10036 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:
(8848 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: 4641

20. Mai 2019, 11:22
Beitrag # 5 von 11
Beitrag ID: #570273
Bewertung:
(8695 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.
Gruß Kai Rübsamen


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:
(8345 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:
(6881 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: 12253

12. Jul 2019, 18:32
Beitrag # 8 von 11
Beitrag ID: #571098
Bewertung:
(6870 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.

Viele Grüße
Martin




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: 404

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

---------------------------------------------------------------------
InDesign CC 2018 | Windows 10 Pro (64-bit)


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:
(5312 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:
(3217 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

Aktuell

Affinity
glyphen-browser_300

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
07.02.2020 - 11.09.2020

Digicomp Academy AG, 8005 Zürich
Freitag, 07. Feb. 2020, 13.00 Uhr - Freitag, 11. Sept. 2020, 12.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
22.02.2020 - 04.07.2020

Lehrgang zielgerichtet auf die Zertifizierung zum Publisher Basic

Schulungsraum PubliCollege, Kronenhalde 9d, 3400 Burgdorf
Samstag, 22. Feb. 2020, 13.14 Uhr - Samstag, 04. Juli 2020, 13.15 Uhr

Projektseminar/Lehrgang

Ziele In der Medienproduktion unter Einbezug der aktuellen Publishing-Programme mitarbeiten. Voraussetzungen Sie möchten gestalterisch tätig sein und eigene grafische Ideen kompetent entwickeln sowie umsetzen; Medienproduktionen professionell planen und ausführen. Kompetenzen Nach Abschluss dieses Lehrgangs können Sie Printpublikationen aller Art von der Gestaltung über die Umsetzung bis zu druckfertige PDFs erstellen. Sie sind fähig, CI/CD-Vorgaben umzusetzen. Sie lernen die Grundlagen der grafischen Gestaltung kennen und setzen diese mit Adobe Photoshop, InDesign und Illustrator effizient um.

15 Halbtage, jeweils am Samstag von 08.30 bis 14 Uhr im Kursraum des PubliCollege, 3400 Burgdorf


Daten
Samstag, 22.2., 29.2., 14.3., 21.3., 28.3., 4.4., 25.4., 2.5., 9.5., 16.5., 6.6., 13.6., 20.6., 27.6., 4.7. 2020
Reservedatum am 23.5. 2020

Ja

Organisator: PubliCollege GmbH, 3400 Burgdorf

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

https://www.publicollege.ch/kursangebote/20-publisher-basic