[ID CS4-CS6] Скрипт для замены текста картинкой

  • Автор темы Автор темы Darvinnn
  • Дата начала Дата начала
Не пойму вам надо искать целые строки?
 
Не пойму вам надо искать целые строки?
Да, нужно найти только те вхождения НАЗВАНИЕ_КАНАЛА, которые ограничены двумя переводами строки по бокам. То есть если НАЗВАНИЕ_КАНАЛА встретится в тексте, то должно игнорироваться.
 
Название канала идет отдельной строкой по видимому... Строки внутри текста не нужно заменять
 
Достаточно сделать искомые слова уникальными. Допустим, добавить первым и последним символом "#". Есть другие методы, но они сложнее.
 
Название канала идет отдельной строкой по видимому... Строки внутри текста не нужно заменять
Да, название канала оно ограничено переводами строк сверху и снизу.
Достаточно сделать искомые слова уникальными. Допустим, добавить первым и последним символом "#". Есть другие методы, но они сложнее.
Это понятно, но хочется переваривать текст от издателей программы без промежуточных танцев. Неужели нельзя найти выражение ^pBLA-BLA^p??? То есть текст, ограниченный с двух сторон переводами строк???
 
Грепом же
 
Еще вопрос возник. Как картинку вставлять понятно стало. А вот как перед ней добавить пару переводов строк? Другими словами, нужно перед
texts.place(File(path[w]));
сделать так, что бы скрипт добавил два перевода строки. Как бы это реализовать?
 
Можно. Придется поменять app.findTextPreferences на app.findGrepPreferences и app.changeTextPreferences и app.findText.
Поменял. Все работает. Но переводы строк зараза не находит ))
Код:
var story = app.activeDocument;

var txt = ["ПЕРВЫЙ", "Россия", "ТНВ", "ТАТ24", "ТВ Центр", "НТВ", "КУЛЬТУРА", "ДОМАШНИЙ", "РЕН ТВ (Регионы)", "ТНТ (+0)", "СТС", "Пятый канал Россия", "МАТЧ!", "Общественное телевидение России (ОТР)"];
var path = ["Первый.eps", "Россия.eps", "ТНВ.eps", "Татарстан24.eps", "ТВЦ.eps", "НТВ.eps", "Культура.eps", "Домашний.eps", "Рен-ТВ.eps", "ТНТ.eps", "СТС.eps", "5 канал.eps", "Матч-ТВ.eps", "ОТР.eps"];
var path_folder = "/C/Users/Guzel/Desktop/DAN/";
var p = "\n";

for (var q = 0; q < path.length; q++) {
    path[q] = path_folder+path[q];
    txt[q] = txt[q]+p;
}

for (var w = 0; w < path.length; w++) {
     //очищаем опции поиска
    app.findGrepPreferences = NothingEnum.NOTHING;
    app.changeGrepPreferences = NothingEnum.NOTHING;
    app.findGrepPreferences.findWhat = txt[w];
    // переменная story должна быть определена ранее, в старом скрипте есть код
    var texts = story.findGrep(true);
    for (var i = 0; i < texts.length; i++) {
       texts[i].place(File(path[w]));
    }

}
 
Греп условие не так формулировать надо
 
В строке app.findGrepPreferences.findWhat = txt[w]; нигде не указаны переводы строк же.
Как это сформулировать? Я к переменным добавляю служебный симовол...
Попробовал так:
app.findGrepPreferences.findWhat = txt[w]+"\n";
Не получается
 
Последнее редактирование:
Я к переменным добавляю служебный симовол...
Строка поиска должна выглядеть точно так же, как строка поиска в стандартном диалоге GREP, только обратные слеши задваиваются. Например, (?<=\\r)Первый(?=\\r)
 
  • Спасибо
Реакции: Darvinnn
Строка поиска должна выглядеть точно так же, как строка поиска в стандартном диалоге GREP, только обратные слеши задваиваются. Например, (?<=\\r)Первый(?=\\r)
Попробую... А как в это выражение добавить элемент массива?
 
Там как то маркеры начала и конца строки задать можно, ы?
 
Это строка такая должна быть в свойстве findWhat
Не могли бы вы строку целиком написать?
У меня выглядит так:
app.findGrepPreferences.findWhat = (?<=\\r)txt[w](?=\\r)

Опс, вроде так работает:
app.findGrepPreferences.findWhat = "\\r"+txt[w]+"\\r";
 
Последнее редактирование: