[ID CC-CC2022] Поиск по тексту словосочетаний и назначение на них якорей

  • Автор темы Автор темы efodin
  • Дата начала Дата начала

efodin

Топикстартер
12 лет на форуме
Сообщения
156
Реакции
10
Есть надобность в таком скрипте:
Поиск по тексту словосочетаний и назначение на них якорей.

Найти нужный текст и сделать из него якоря, у меня получилось. Дальше не хватает знаний решить такие вопросы:

1. Как передать в массив, arrSrchRes, все найденное. Например, ищем текст со стилем Normal, и передаем его в массив arrSrchRes.

2. Как получить массив из уже созданных якорей, arrAncRes.

3. Ну и собственно, как из массива arrSrchRes найти соответствие в массиве arrAncRes и присвоить якорь, TextAnchor.
 
вы пишете - найти текст у вас получилось. то что нашли - это массив. если вы конечно скриптом искали, а не глазами по тексту.
 
вы пишете - найти текст у вас получилось. то что нашли - это массив. если вы конечно скриптом искали, а не глазами по тексту.
Я искал через GREP. То есть нашел -- заменил. А мне нужно создать/получить масив.
Код:
app.findGrepPreferences.appliedParagraphStyle = "ХXX";
app.changeGrepPreferences.appliedCharacterStyle = "YYY";
 
Последнее редактирование:
метод, которым вы делаете замену - .changeGrep() - возвращает массив 'otbline'

Text.changeGrep (reverseOrder: Boolean ):Array of Text

Adobe InDesign 2020 (15.0) Object Model

Finds text that matches the find what value and replaces the text with the change to value.

reverseOrder: Data Type: Boolean

If true, returns the results in reverse order. (Optional)
 
а напишите ваш код, как вы текст нашли
 
Код:
app.findGrepPreferences.appliedParagraphStyle = "ХXX";
 
Это ничего не ищет. Только установка атрибутов поиска

Полный код?
 
Почему не ищет? Ищет. Ищет стиль абзаца с именем = "ХХХ"
 
Ванговать без полного кода сложновато.
 
Ванговать без полного кода сложновато.
и как оно ищет, можете показать на примере?

Я затрудняюсь что-то сказать тогда… Наверное кода нет, тогда…

Есть череда поисков и замен основанная на:

Например:
Код:
app.findGrepPreferences.findWath = “GREP запрос”
app.changeGrepPreferences.fontStyle = "Italic";
или
Код:
app.findGrepPreferences.appliedParagraphStyle = "какой-то ParagraphStyle";
app.changeGrepPreferences.appliedCharacterStyle = "какой-то CharacterStyle";
Или нужно вот в таком виде написать:
Код:
var doc = app.activeDocument;
var sel = doc.selection[0];
var s = sel.parentStory;

app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.appliedParagraphStyle = "Header";
app.changeGrepPreferences.appliedCharacterStyle = "header-anchor";
s.changeGrep();
alert("Finish");
 
Ну вот. В предпоследней строчке метод возвращает массив.
 
Да, спасибо. Возвращает. Но вот если бы вы ответили на мой вопрос, вот это было бы чудесно.