Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Javascript suchen ersetzen in bestimmten Textrahmen

Javascript suchen ersetzen in bestimmten Textrahmen

waldviertler
Beiträge gesamt: 43

19. Okt 2012, 20:41
Bewertung:

gelesen: 15822

Beitrag als Lesezeichen
Hallo!

Wie kann ich per Script in meinem Dokument nur die Texte eines bestimmten Textrahmen zu suchen und ersetzen?

Der Textrahmen hat einen Namen:
Code
var _dok = app.activeDocument; 
var tF = _dok.textFrames.itemByName("_Name");


und die Suche wird per Funktion aufgerufen:
Code
function suchenUndErsetzen() { 

app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat= "^(\\d{4}#)\r";
app.changeGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences.changeTo= "";
app.activeDocument.changeGrep();
//usw
}


Aber egal was ich mache, die Suche läuft immer übers ganze Dokument.

Weiß jemand Rat?

Beste Grüße
Martin

Javascript suchen ersetzen in bestimmten Textrahmen

drerol74
Beiträge gesamt: 507

19. Okt 2012, 21:16
Bewertung: |

gelesen: 15800

Beitrag als Lesezeichen
Hallo Martin,

mit app.activeDocument.changeGrep(); ersetzt du im gesamten aktiven Dokument.

In deinem Fall legst du den Ort, wo gesucht/ersetzt werden soll, so fest:

Code
tF.findGrep(); 


Code
tF.changeGrep(); 




Schöne Grüße
Roland

Javascript suchen ersetzen in bestimmten Textrahmen

waldviertler
Beiträge gesamt: 43

19. Okt 2012, 22:33
Bewertung:

gelesen: 15766

Beitrag als Lesezeichen
Weltklasse!!!

Vielen Dank, Roland

Martin

Javascript suchen ersetzen in bestimmten Textrahmen

photojo
Beiträge gesamt: 38

30. Apr 2021, 09:42
Bewertung:

gelesen: 14437

Beitrag als Lesezeichen
Hallo,

offensichtlich stelle ich mich zu doof an:

Ich möchte nur in der Box einen Text suchen/ersetzen:
Code
for (var a = 0; a < allPageItems.length; a++) { 
// das aktive Objekt
var curPageItem = allPageItems[a];
var curName = curPageItem.name;
var curSide = curPageItem.parentPage.side;

if (curName == "fuss" && curSide == PageSideOptions.LEFT_HAND) {
// das Objekt verschieben
curPageItem.move([110, 142]);

meinInhalt = curPageItem.texts[0].paragraphs[0].contents;

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "abc";

app.changeGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences.changeTo = "xyz";

curPageItem.findGrep();


Das Verschieben geht. Der Text (meinInhalt) wird zur Kontrolle auch korrekt in einem Alert ausgegeben. Aber das Suchen/Ersetzen in der Textbox klappt nicht, über dem ganzen Dokument schon?! Was mache ich falsch?

Danke!

Javascript suchen ersetzen in bestimmten Textrahmen

WernerPerplies
Beiträge gesamt: 2762

30. Apr 2021, 10:06
Bewertung:

gelesen: 14421

Beitrag als Lesezeichen
Probiere es mal mit dieser Funktion:
wpsReplaceWithGrep(curPageItem, searchString, replaceString);
Code
wpsReplaceWithGrep(curPageItem, searchString, replaceString); 
/*Array*/function wpsReplaceWithGrep(object, searchString, replaceString)
{
try
{
//Reset the find/change grep preferences before each search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions = NothingEnum.nothing;
app.findGrepPreferences.findWhat = searchString;
app.changeGrepPreferences.changeTo = replaceString;
var founds = object.changeGrep();
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions = NothingEnum.nothing;
return founds;
}
catch (error)
{
founds = [];
throw error;
}
}


Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Javascript suchen ersetzen in bestimmten Textrahmen

Martin Fischer
  
Beiträge gesamt: 12783

30. Apr 2021, 10:10
Bewertung: |||

gelesen: 14414

Beitrag als Lesezeichen
Hallo photojo,

Antwort auf: curPageItem.findGrep();


Der Befehl zum GREP-Ersetzen lautet:

Code
    curPageItem.changeGrep(); 


Viele Grüße
Martin


Javascript suchen ersetzen in bestimmten Textrahmen

photojo
Beiträge gesamt: 38

30. Apr 2021, 11:13
Bewertung:

gelesen: 14368

Beitrag als Lesezeichen
Vielen Dank Werner und Martin. Jetzt klappt es!

Herzliche Grüße

Jo