как назначить символу новый стиль при поиске с заменой?

  • Автор темы Автор темы maxCore
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

maxCore

Участник
Топикстартер
Сообщения
5
Реакции
0
Пишу скрипт для замены символов в тексте. Есть проблемка: нужно заменить определенную последовательность символов другой последовательностью символов, но уже другого шрифта (вместо PragmaticaC сделать Windings).
Пытался сделать так, но выдает кучу ошибок:

with (app) {
if (documents.length == 0) { exit(); }
if (selection.length == 0) { exit(); }
var mySel = selection[0];
if ((mySel.constructor.name == 'Text') || (mySel.constructor.name == 'Word')) {
var searchCharacterStyle = mySel.appliedCharacterStyle;
var myStory = selection[0];
var myText = myStory;

var myStyle = characterStyles.add();
myStyle.name = "znak";
myStyle.appliedFont = "Wingdings";
var myr1 = '<F02A>';
myr1.appliedCharacterStyle = myStyle

} else {
exit();
}
do {
dlgRes = dlgReplace();
varClose = dlgRes;
} while (dlgRes);
}

function dlgReplace() {
findPreferences = null;
changePreferences = null;
var myR = myText.search('<adress>', false, false, myr1);
findPreferences = null;
changePreferences = null;
}

Я так понимаю, что скорее всего нельзя вот так вот просто назначать стиль символа текстовой переменной, а нужно, наверное, назначать его непосредственно при замене. Вот только как?
 
Ответ: как назначить символу новый стиль при поиске с заменой?

Скрипт не твой, как я погляжу?
Почитай о findPreferences и changePreferences.
 
Ответ: как назначить символу новый стиль при поиске с заменой?

vbatushev сказал(а):
Скрипт не твой, как я погляжу?
Почитай о findPreferences и changePreferences.

Скрипт я переделываю из твоего скрипта "QuickReplace".
Просто я только начинаю писать, а с нуля начинать было бы сложнее.

По findPreferences и changePreferences смог найти только краткие описания, из которых понял что в этих свойствах хранятся расширенные настройки поиска и замены. Так как и что в них записать, чтобы присвоить стиль символа "значок" новым символам?
Понимаю что вопрос глупый, но я уже несколько дней роюсь в "Adobe InDesign CS scripting guide", а это 1829 страниц на английском. Пока больше пользы принес анализ готовых скриптов с этого сайта.
 
Ответ: как назначить символу новый стиль при поиске с заменой?

Это не мой :)

А как ты хотел! :) Все так и роются, потом многие вещи залипают "на кончиках пальцев", но рыться роешься всегда.

app.changePreferences.appliedCharacterStyle = 'myStyle';
или
app.changePreferences.appliedCharacterStyle = app.activeDocument.characterStyles['myStyle'];
или если переменная myStyle это ссылка на объект characterStyle
app.changePreferences.appliedCharacterStyle = myStyle;
 
Ответ: как назначить символу новый стиль при поиске с заменой?

Сделал по твоему совету:

function dlgReplace() {
findPreferences = null;
changePreferences = null;
var myR = myText.search('^{', false, false, '«');
myR = myText.search('^}', false, false, '»');
myR = myText.search('- ', false, false, ' ^= ');
myR = myText.search(' - ', false, false, ' ^= ');
myR = myText.search(' -', false, false, ' ^= ');
findPreferences = null;
changePreferences = null;
app.changePreferences.appliedCharacterStyle = 'znak';
myR = myText.search('<adress>', false, false, '<F02A>');
myR = myText.search('<phone>', false, false, '<F029>');
myR = myText.search('<begin>', false, false, '<F06E>');
findPreferences = null;
changePreferences = null;
}

Теперь фраза <adress> меняется, а на следующей пишет сообщение об ошибке: (Offending text " ")
 
Статус
Закрыто для дальнейших ответов.