[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Grep Suche und Ersetzen

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

Grep Suche und Ersetzen

Baschi
Beiträge gesamt:

16. Nov 2011, 09:52
Beitrag # 1 von 5
Bewertung:
(1432 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen

Ich versuche mit dem folgenden Script mehrere Suchen/Ersetzen-Vorgänge in einer Textauswahl durchzuführen. Leider verändert sich die Auswahl während der Script-Ausführung, so dass das Ende der Auswahl nicht mehr bearbeitet wird. Hat da jemand eine Lösung?

Besten Dank im voraus

Alex

Code
//------------------------------------------------------------------- 

var theFindChangeList = [['\t:\t',':'], ['\t\s','\t'],['\s\t','\t'],['\t\r','\r']];

var theSelection = app.activeDocument.selection[0];

for (var i = 0 ; i < theFindChangeList.length ; i++){
grepReplace(theSelection, theFindChangeList[i]);
}


function grepReplace(theText, theSR){
var theSearch = theSR[0];
var theReplace = theSR[1];

app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = theSearch;
app.changeGrepPreferences.changeTo = theReplace;
theText.changeGrep();
}


(Dieser Beitrag wurde von Martin Fischer am 16. Nov 2011, 09:59 geändert)
X

Grep Suche und Ersetzen

Martin Fischer
  
Beiträge gesamt: 12664

16. Nov 2011, 10:01
Beitrag # 2 von 5
Beitrag ID: #484504
Bewertung:
(1427 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

der einfachste Weg dürfte sein, den ausgewählten Text in einen neuen, temporären Textrahmen zu kopieren (oder verschieben), dort über die parentStory des temp. Textrahmens die Ersetzungen vorzunehmen und die ursprüngliche Auswahl durch den Inhalt des temporären Textrahmens (bzw. dessen parentStory) zu ersetzen (bzw. den Textabschnitt an die ursprüngliche Position des ausgewählten Texts zu verschieben).


als Antwort auf: [#484501]
(Dieser Beitrag wurde von Martin Fischer am 16. Nov 2011, 10:03 geändert)

Grep Suche und Ersetzen

Baschi
Beiträge gesamt:

16. Nov 2011, 10:26
Beitrag # 3 von 5
Beitrag ID: #484509
Bewertung:
(1407 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin

Danke für die schnelle Antwort. Ich werde wohl diesen 'steinigen' Weg beschreiten müssen ;)

So ganz verstehe ich aber das Verhalten nicht. Wenn sich nach der Selektion noch Text befindet, so funktioniert das Script einwandfrei. Das problematische Verhalten taucht nur dann auf, wenn sich die Auswahl am Textende befindet.

Gruss, Alex


als Antwort auf: [#484504]

Grep Suche und Ersetzen

Hans Haesler
  
Beiträge gesamt: 5818

16. Nov 2011, 10:50
Beitrag # 4 von 5
Beitrag ID: #484518
Bewertung:
(1380 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

ein anderer Weg: Im Ersetzen-String das zu entfernende Zeichen zunächst durch eines ersetzen, welches in der Auswahl nicht vorkommt. Und am Schluss dieses Zeichen (hier: ) durch nichts ersetzen.

Bei meinen Versuchen wurde der Zwischenraum nicht gefunden. Deshalb wird Text anstelle von Grep verwendet.

Code
app.findTextPreferences = app.changeTextPreferences = null; 

var theFindChangeList = [['\t:\t',':¶'], ['\t ','\t¶'],[' \t','¶\t'],['\t\r','¶\r']];

var theSelection = app.activeDocument.selection[0];

for (var i=0; i<theFindChangeList.length; i++) {
textReplace(theSelection, theFindChangeList[i][0], theFindChangeList[i][1]);
}

app.findTextPreferences.findWhat = '¶';
app.changeTextPreferences.changeTo = '';
theSelection.changeText();

app.findTextPreferences = app.changeTextPreferences = null;

function textReplace(theText, theSearch, theReplace) {
app.findTextPreferences.findWhat = theSearch;
app.changeTextPreferences.changeTo = theReplace;
theText.changeText();
}

Das Zurücksetzen der Preferences innerhalb der Funktion ist nicht notwendig, weil die zugewiesenen Suchen- und Ersetzen-Strings keine Formatierungsunterschiede aufweisen.

Deshalb: Zurücksetzen zu Beginn und am Schluss.

Gruss, Hans


als Antwort auf: [#484509]

Grep Suche und Ersetzen

Baschi
Beiträge gesamt:

16. Nov 2011, 11:05
Beitrag # 5 von 5
Beitrag ID: #484526
Bewertung:
(1364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Danke für die Antwort! So kriege ich es hin.

Gruss, Alex


als Antwort auf: [#484518]
X

Aktuell

InDesign / Illustrator
axaio_PR_Bild_300x300_10_22

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
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

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

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/