Code to be evaluated! [017] Double loop! …
Hi Scripters,
Even if this seems to work, should I avoid this kind of writing? [line 20]
• Double loop while + for on the same "F"
• Find/Replace without "changeTo"
[ Original thread here: Repeated Volume Numbers in Index ]
redraw = app.scriptPreferences.enableRedraw;
app.scriptPreferences.enableRedraw = 0;
app.doScript("main()", ScriptLanguage.javascript, undefined, UndoModes.ENTIRE_SCRIPT, "FindReplace! …");
app.scriptPreferences.enableRedraw = redraw;
function main()
{
var myDoc = app.activeDocument,
FindWhat1 = "(I+:\\h)(\\d+(,\\h)?)+\\K\\1",
FindWhat2 = "\\d+\\K,(?=\\hI+:\\h)", ReplaceBy2 = ";";
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = FindWhat1;
myFound = myDoc.findGrep();
var F = myFound.length;
while (F--) for (var f = 0; f < F; f++) myDoc.changeGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = FindWhat2;
app.changeGrepPreferences.changeTo = ReplaceBy2;
myDoc.changeGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;
}
Thanks in advance! ![]()
(^/)