Поиск подстроки -> действия в найденном

Статус
Закрыто для дальнейших ответов.

Ильнур

Участник
Топикстартер
Сообщения
42
Реакции
0
Нужен скрипт.
Документ состоит из множества таблиц, таблицы из множества строк.
Строки из ячеек))
В ячейке может находится подстрока %БЕЛЫЙ%

1. Найти все такие подстроки
2. Строку, где есть ячейка с найденной подстрокой:
- изменить заливку
- изменить шрифт
- изменить цвет шрифта
3. Удалить найденную подстроку

Поиск по всему документу.
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359

Не по теме:
2. Проще применить стиль к ячейке ))
 
  • Спасибо
Реакции: Ильнур

Ильнур

Участник
Топикстартер
Сообщения
42
Реакции
0
в документе 12 000 строк
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
Я имел ввиду создать стиль ячейки с нужным абзацным стилем и нужной заливкой, вам же проще потом будет менять их, если что )

В коде, где "WHITE" — название стиля ячейки
Код:
#target Indesign   
var myDoc=app.activeDocument;   
for (s=0; s<myDoc.stories.length; s++) {
        for (t=0; t<myDoc.stories[s].tables.length; t++) {
          for (c=0; c<myDoc.stories[s].tables[t].cells.length; c++) {
                 if (myDoc.stories[s].tables[t].cells[c].contents == "%БЕЛЫЙ%" ) {
                    myDoc.stories[s].tables[t].cells[c].appliedCellStyle = "WHITE"; 
                    myDoc.stories[s].tables[t].cells[c].contents = "";
                 }; //end if
            }; //end for cells
        }; //end for tables
}; //end for stories
 
  • Спасибо
Реакции: Ильнур

MT

15 лет на форуме
Сообщения
246
Реакции
93
Я бы делал через поиск
Код:
var myDoc= app.activeDocument;
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.findWhat = "%БЕЛЫЙ%";
var myFound = myDoc.findText();
for (var i = myFound.length - 1;  i > -1; i--) {
      myFound[i].parent.appliedCellStyle = "WHITE";
      myFound[i].remove();
        }
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359

Не по теме:
ну да, даже быстрее должно быть, я тока учусь )
 
Статус
Закрыто для дальнейших ответов.