[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:
(1443 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: 12685

16. Nov 2011, 10:01
Beitrag # 2 von 5
Beitrag ID: #484504
Bewertung:
(1438 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:
(1418 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:
(1391 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:
(1375 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

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
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/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/