Java-скрипт с применением Grep

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

FlintOFF

Участник
Топикстартер
Сообщения
52
Реакции
0
Люди добрые подскажите почему ява скрипт с применением Grep не работает, что я сделал не так?

Код:
//Clear the find/change preferences.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

app.findChangeGrepOptions.includeFootnotes = true;
app.findGrepPreferences.findWhat = "^(\d)[.](\d)";
app.changeGrepPreferences.changeTo = "0$1:$2";
app.activeDocument.changeGrep();

//Clear the find/change preferences after the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

Скрипт должен заменять время типа 4.40 на 04:40
 
Ответ: GREP в InDesign. Что и как

"Уж тыщу раз твердили миру..." (с) И.А. Крылов
Вы бы хоть выше эту ветку просмотрели!!!
PHP:
app.findGrepPreferences.findWhat = "^(\\d)(\.)(\\d)";
app.changeGrepPreferences.changeTo = "$1:$3";
 
Ответ: GREP в InDesign. Что и как

Спасибо за быстрый ответ, скрипт замечательно работает
Код:
//Clear the find/change preferences.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

app.findChangeGrepOptions.includeFootnotes = true;
 app.findGrepPreferences.findWhat = "^(\\d)(\.)(\\d)";
app.changeGrepPreferences.changeTo = "$1:$3"; 
app.activeDocument.changeGrep();

//Clear the find/change preferences after the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
 
Ответ: GREP в InDesign. Что и как

У меня все отлично работает. Двоеточия между цифрами в начале абзацев заменяются на точки...
Ну если делать точно, что вы хотели, то:
PHP:
app.findGrepPreferences.findWhat = "^(\\d)(\.)(\\d\\d)";
app.changeGrepPreferences.changeTo = "0$1:$3";
 
Ответ: GREP в InDesign. Что и как

И еще один вопрос, если я делаю несколько замен как правильно писать, в данной ситуации я делаю следующим образом: 1-очищаю 2- произвожу поиск и замену 3- очищаю 4- произвожу поиск и замену 5- очищаю. Или есть другие правила работы, но на данный момент все замечательно работает
PHP:
//Clear the find/change preferences.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//добавляет "0" (3.40 = 03.40)и заменяет точку на двоеточие во времени (03.40=03:40) 
app.findChangeGrepOptions.includeFootnotes = true;
 app.findGrepPreferences.findWhat = "^(\\d)(\.)(\\d)";
app.changeGrepPreferences.changeTo = "0$1:$3"; 
app.activeDocument.changeGrep();

//Clear the find/change preferences after the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//заменяет точку во врени типа 13.40 = 13:40 на двоеточие
app.findChangeGrepOptions.includeFootnotes = true;
 app.findGrepPreferences.findWhat = "^(\\d\\d)(\.)(\\d\\d)";
app.changeGrepPreferences.changeTo = "$1:$3"; 
app.activeDocument.changeGrep();

//Clear the find/change preferences after the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
 
Ответ: GREP в InDesign. Что и как

Средняя (вторая) очистка зачем? Не нужно!
И поиск по сноскам зачем второй раз объявлять? Тоже не нужно...
 
Ответ: GREP в InDesign. Что и как

Большое спасибо sakhar человек действительно помогает.

Хотелось бы еще раз получить помощ, из книги по скриптингу в Indesign так и не понятно как поменять шрифт всего текста в документе на заданный.

Заранее спасибо.
 
Ответ: GREP в InDesign. Что и как

Перебираете в цикле все story в activeDocument, в каждой story:
PHP:
story[i].text[0].appliedFont = "My Font Name";
Но вообще-то лучше такие вопросы здесь не задавать! Почитайте литературку, посмотрите примеры, на тулбоксе их море...
 
Ответ: GREP в InDesign. Что и как

Спасибо за ответ.
Еще один вопрос я произвожу поиск и замену текста, как сделать так что б текст который заменяется был еще ЖИРНЫМ.

Вот пример кода:
PHP:
//очещаем буфер после поиска и замены
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//добавляет "0" (3.40 = 03.40) 
app.findChangeGrepOptions.includeFootnotes = true;
 app.findGrepPreferences.findWhat = "^(\\d)(\.)(\\d)";
app.changeGrepPreferences.changeTo = "0$1.$3"; 
app.activeDocument.changeGrep();

//очещаем буфер после поиска и замены
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

как выделить app.changeGrepPreferences.changeTo = "0$1.$3"; жирным?
 
Ответ: GREP в InDesign. Что и как

PHP:
app.changeGrepPreferences.fontStyle = 'Bold';
Еще раз настоятельно прошу вас прислушаться к моему совету!
 
Ответ: GREP в InDesign. Что и как

Добрый день sakhar. Спасибо за ответы, я прислушался к вашему совету и купил новую книгу по индизайну "Скрипты в Indesign" автора Михаила Борисова. к сожелению книга оказалась мало чем полезна "чайнику" (можно даже сказать что мне стало денег жалко за такую пахабную книгу по многим причинам). Хотел узнать от Вас, как от опытного человека, где именно можно взять стоющею информацию по скриптингу в индезайне в плане поиска замены и простого редактирования текста.

Смотрите из за чего я это пишу, передомной стала проблема следующего характера при поиске и замене в заменяемой строчке одна переменная должна быть жирная другая нет, вот пример кода, помогите чем сможете.
PHP:
//очищаем буфер после поиска и замены
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//делаем жирный текст для Х/Ф или Сериала и т.д.
app.findChangeGrepOptions.includeFootnotes = true;
app.findGrepPreferences.findWhat = "^(\\d\\d\.\\d\\d)(\\t[Т/с|М/ф|Д/ф|М/с|Детектив].+[\\r])";

app.changeGrepPreferences.changeTo ="$1$2"; 
app.changeGrepPreferences.fontStyle = "Bold"; 
app.activeDocument.changeGrep();

//очищаем буфер после поиска и замены
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
как здесь сделать что б именно вторая переменная $2 была БОЛДОМ?

Заранее Вам спасибо!
 
Ответ: GREP в InDesign. Что и как

На форуме море информации, пользуйтесь поиском!
http://forum.rudtp.ru/showthread.php?t=33162
http://forum.rudtp.ru/showthread.php?t=33214
http://www.teusdejong.nl/thome/ho_body5.html
Учитесь скриптописанию на примерах других, а таких примеров огромное количество на тулбоксе

Отвечаю в последний раз на ваш вопрос, т.к. нужно разбираться самому!!! Рекомендую использовать "положительный просмотр назад":
PHP:
app.findGrepPreferences.findWhat = "(?<=(^\\d\\d\.\\d\\d))(\\t[Т/с|М/ф|Д/ф|М/с|Детектив].+[\\r])"; 
app.changeGrepPreferences.fontStyle = "Bold";
 
Статус
Закрыто для дальнейших ответов.