Помогите со скриптом: найти и заменить согласно Query

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

Maxbor

Топикстартер
15 лет на форуме
Сообщения
215
Реакции
82
Прошу помощи по, казалось бы, простому заданию.
1. Загрузить по имени предварительно сохранённый Query (в закладке text либо GREP)
2. Выполнить команду GhangeAll для области Document.

По первому пункту, кажется, должно быть
PHP:
app.loadFindChangeQuery(<QueryName>)
А по второму как?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: Помогите со скриптом: найти и заменить согласно Query

app.findTextPreferences.findWhat = "copy";
app.changeTextPreferences.changeTo = "text";
app.activeDocument.changeText();

для GREP аналогично, но метод changeGrep
 

Maxbor

Топикстартер
15 лет на форуме
Сообщения
215
Реакции
82
Ответ: Помогите со скриптом: найти и заменить согласно Query

Работает отлично. Большое спасибо.
Полностью то, что получилось, выглядит так:

app.loadFindChangeQuery("NBSP—",SearchModes.TEXT_SEARCH);
app.activeDocument.changeText();
app.loadFindChangeQuery("Неразрывы в предлогах",SearchModes.GREP_SEARCH);
app.activeDocument.changeGrep();
 

Gennad

Участник
Сообщения
42
Реакции
1
Ответ: Помогите со скриптом: найти и заменить согласно Query

Спасибо, мне тоже это помогло составить мой первый скриптик. А как можно искать еще и с определенным стилем? Или например шрифтом? Например если стоит задача понаходить определенные элементы текста и покрасить их каким-то стилем. Заранее спасибо.

Кстати вот что именно у меня получилось с вашей помощью:

Код:
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions.includeFootnotes = true;
app.findGrepPreferences.findWhat = "(\\d) (mm)";
app.changeGrepPreferences.changeTo = "$1~<$2";
app.activeDocument.changeGrep();

простенькая задачка для простановки неразрывных тонких пробелов между цифрой и размерностью. Думаю копируя эти 6 строк и меняя условия замены можно сделать хоть и неуклюжий но вполне рабочий скрипт для замен всех известных размерностей.
 

Alex1408

Участник
Сообщения
1
Реакции
0
Ответ: Помогите со скриптом: найти и заменить согласно Query

А куда это писать?!

PHP:
app.loadFindChangeQuery("NBSP—",SearchModes.TEXT_SEARCH);
app.activeDocument.changeText();
app.loadFindChangeQuery("Неразрывы в предлогах",SearchModes.GREP_SEARCH);
app.activeDocument.changeGrep();
 

LeshikSan

15 лет на форуме
Сообщения
266
Реакции
185
Ответ: Помогите со скриптом: найти и заменить согласно Query

это имена твоих запросов, Queries, они же - xml-файлы в папке \Find-Change Queries\GREP
 

Polar_bear

Участник
Сообщения
81
Реакции
0
Ответ: Помогите со скриптом: найти и заменить согласно Query

Можно лучше. Вместо
Gennad сказал(а):
Код:
app.findGrepPreferences.findWhat = "(\\d) (mm)";
app.changeGrepPreferences.changeTo = "$1~<$2";
написать
app.findGrepPreferences.findWhat = "(?<=\\d) (?=(mm|km|m))" через | перечислить единицы измерения, которые нужно отбить нужным пробелом)
app.changeGrepPreferences.changeTo = "~<"
 

Polar_bear

Участник
Сообщения
81
Реакции
0
Ответ: Помогите со скриптом: найти и заменить согласно Query

Подумал-подумал. Вот так:
app.findGrepPreferences.findWhat = "(?<=\\d) (?=(mm|km|m)\\W)"
мне кажется еще лучше :)
 
Статус
Закрыто для дальнейших ответов.