[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Suchen und Ersetzen in Arrays

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

Suchen und Ersetzen in Arrays

Karsten Lange
Beiträge gesamt: 192

20. Sep 2020, 18:36
Beitrag # 1 von 3
Bewertung:
(5599 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo alle zusammen,

eine vermutlich eher allgemeine Frage zu Java Script als das es etwas mit InDesign zu tun hat.
Ich möchte innerhalb eines Array bei einzelnen/bestimmten Arrayeinträgen im contents Suchen und Ersetzen. Das funktioniert auch im Beispiel 1 und 2 gut, aber wenn das erste Zeichen bei der Suche&Ersetzung involviert ist, ist dieses Zeichen danach (in meinem Beispiel 3 der Buchstabe A) nicht mehr Teil des Arrayeintrags. Der Arrayeintrag wird um die Anzahl der durch die Ersetzung eingefügten Zeichen (in meinem Beispiel ja nur ein Zeichen, dass #) vom Anfang her gekürzt.
Genauso verhält es sich auch, wenn ich Zeichen am Ende des Arrayeintrags hinzufügen möchte (Beispiel 4).
Da ich mich sicher extrem ungeschickt anstelle und es deshalb für euch schwer nachzuvollziehen ist habe ich da mal etwas vorbereitet:

// Folgenden Text in ein InDesign-Dokument einfügen:
// Beispiel 1: abcDEfgh richtig
// Beispiel 2: abcdefGH richtig
// Beispiel 3: ABcdefgh falsch
// Beispiel 4: abcdefgh falsch


// Code:
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = false;
app.findGrepPreferences.findWhat = "(?<=: )[\\l\\u]+";
var _Suche = app.activeDocument.findGrep();

for (i = 0; i < _Suche.length; i++)
{
app.findGrepPreferences.findWhat = "(\\u)(\\u)";
app.changeGrepPreferences.changeTo = "$1#$2";
_Suche.changeGrep();
// _Suche.contents.replace(/([A-Z])([A-Z])/g, "$1#$2"); // statt der darüberstehenden 3 Zeilen
_Suche.pointSize = "20";
alert ("Beispiel " + (i+1) + " nach dem ersetzen:\r" + _Suche.contents);
}

// etwas am Ende des Array-Eintrags hinzufügen
_Suche[3].contents = _Suche[3].contents + "###";
_Suche[3].pointSize = "30";
alert ("Beispiel 4 nach dem hinzufügen:\r" + _Suche[3].contents);




Jetzt hatte ich es noch mit replace versucht, aber das Ergebnis verstehe ich gar nicht mehr. Steh wahrscheinlich tief im Wald.


Es grüßt und dankt der ahnungslose Karsten.
X

Suchen und Ersetzen in Arrays

Dirk Becker
Beiträge gesamt: 172

21. Sep 2020, 00:15
Beitrag # 2 von 3
Beitrag ID: #576823
Bewertung:
(5538 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Durch Textänderungen an kleineren Positionen verschieben sich der Text unter den folgenden Treffern. findGrep hat deswegen einen Boolean Parameter für eine umgedrehte Ergebnisliste, sodass man von hinten nach vorne arbeitet: findGrep(true) …


als Antwort auf: [#576822]

Suchen und Ersetzen in Arrays

Karsten Lange
Beiträge gesamt: 192

21. Sep 2020, 18:50
Beitrag # 3 von 3
Beitrag ID: #576831
Bewertung:
(5310 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Becker,

lieben Dank für ihre Antwort, aber ganz ehrlich: Ich nix verstehen. ;-)

app.findChangeGrepOptions.searchBackwards = true; haben sie vermutlich nicht gemeint?

Falls sie Zeit finden dies etwas ausführlicher darzulegen, wäre das ganz großartig, denn das Array von hinten abzuarbeiten "for (i = _Suche.length-1; i >= 0; i--)" hat auch nix gebracht.

Einen schönen Abend wünscht Karsten.


als Antwort auf: [#576823]

Aktuell

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
22.10.2020 - 23.10.2020

Digicomp Academy AG, Basel und Bern
Donnerstag, 22. Okt. 2020, 08.30 Uhr - Freitag, 23. Okt. 2020, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Preis: 1'400.-
Dauer: 2 Tage

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/desktop-publishing/adobe-indesign-cc/kurs-indesign-cc-advanced

Veranstaltungen
22.10.2020

Digicomp Academy AG, Bubenbergplatz 11, 3011 Bern
Donnerstag, 22. Okt. 2020, 18.00 - 20.00 Uhr

Infoabend

1. Lehrgang: Web Publisher Im berufsbegleitenden Web Publisher Lehrgang vertiefen Sie Ihr Wissen rund um das Thema Screendesign und die Umsetzung von Websites. Wir befähigen Sie dazu selbständig und professionell Ihren Webauftritt zu planen und in die Realität umzusetzen. - nächste Durchführung: 06.11.2020 - 11.12.2020 https://www.digicomp.ch/zertifizierung/software-anwendungs-zertifikate/publishing-zertifizierung/lehrgang-web-publisher 2. Lehrgang: Publisher Basic Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen. - nächste Durchführung: 12.03.2021 - 16.07.2021 https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-basic 3. Lehrgang: Publisher Professional 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. - nächste Durchführung: 05.02.2021 - 05.11.2021 https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Preis: kostenlos
Dauer: 18 - 20 Uhr / ab 20 Uhr Apéro

Nein

Organisator: Digicomp Academy AG

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

https://www.digicomp.ch/events/infoabende/infoabend-fuer-software-anwender-innen/infoabend-publishing-lehrgaenge

Neuste Foreneinträge


Probleme mit dem Strukturbaum Acrobat Pro DC (barrierefrei)

PDF_RGB-AUSGABE

InDesign CC 2021: Neuerungen / New Features

Flächendeckung einer Datei

Bedingter Text

Letzter Aufruf für InDesign CC 2019 ?

Sehr hochwertiger Bildschirm (gleichwertig wie Mac Retina)

Sound für Imagefilm / Produkt-Kurzvideo

Bild öffnen - - .......weil ein Volumefehler aufgetreten ist nicht öffnen.

Probleme beim Einlaoggen auf Quark-Seite
medienjobs