Да, нужно найти только те вхождения НАЗВАНИЕ_КАНАЛА, которые ограничены двумя переводами строки по бокам. То есть если НАЗВАНИЕ_КАНАЛА встретится в тексте, то должно игнорироваться.Не пойму вам надо искать целые строки?
Да, название канала оно ограничено переводами строк сверху и снизу.Название канала идет отдельной строкой по видимому... Строки внутри текста не нужно заменять
Это понятно, но хочется переваривать текст от издателей программы без промежуточных танцев. Неужели нельзя найти выражение ^pBLA-BLA^p??? То есть текст, ограниченный с двух сторон переводами строк???Достаточно сделать искомые слова уникальными. Допустим, добавить первым и последним символом "#". Есть другие методы, но они сложнее.
Можно. Придется поменятьНеужели нельзя
app.findTextPreferences
на app.findGrepPreferences
и app.changeTextPreferences
и app.findText
.Поменял. Все работает. Но переводы строк зараза не находит ))Можно. Придется поменять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];
нигде не указаны переводы строк же.
app.findGrepPreferences.findWhat = txt[w]+"\n";
Строка поиска должна выглядеть точно так же, как строка поиска в стандартном диалоге GREP, только обратные слеши задваиваются. Например,Я к переменным добавляю служебный симовол...
(?<=\\r)Первый(?=\\r)
Попробую... А как в это выражение добавить элемент массива?Строка поиска должна выглядеть точно так же, как строка поиска в стандартном диалоге GREP, только обратные слеши задваиваются. Например,(?<=\\r)Первый(?=\\r)
Где там?? Вы знаете как сформулировать строку поискаТам как то маркеры начала и конца строки задать можно, ы?
Это строка такая должна быть в свойствеА как в это выражение добавить элемент массива?
findWhat
Не могли бы вы строку целиком написать?Это строка такая должна быть в свойствеfindWhat
app.findGrepPreferences.findWhat = (?<=\\r)txt[w](?=\\r)
app.findGrepPreferences.findWhat = "\\r"+txt[w]+"\\r";