Избранное »

22.09.2014 – 07:27 | 2 комментария | 8 490 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com начал работу канал «InDesign Мастерская вёрстки». Там уже размещены более 60 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скрипты

Модифицированный скрипт FindChangeByList

Добавлено на 21.10.2008 – 23:5912 комментариев | 1 137 views

В составе скриптов в поставке InDesign CS3 есть скрипт FindChangeByList, который выполняет поиск и замену в тексте в соответствии со списком, который создает пользователь. Но многие дизайнеры хотели бы оперировать не одним списком, а несколькими, что позволило бы им иметь больше гибкости при выполнении такого рода работ. В соответствии с этими пожеланиями стандартный скрипт FindChangeByList был модифицирован для работы со списками. При этом полностью сохранена его функциональность.

Диалоговое окно скрипта

Модифицированный скрипт, также как и стандартный, работает с тем же самым файлом  /FindChangeSupport/FindChangeList.txt. Для разделения ваших списков в этом файле используйте строки с заголовками. В начале строки с заголовком должны подряд стоять три звездочки (Shift+8), по которым строка и опознается как заголовок (такое добавление заголовков никак не повлияет на работу стандартного скрипта, он их проигнорирует).

Если в файле FindChangeList.txt не будет ни одного заголовка, то модифицированный скрипт всему списку поиска-замен присвоит имя NONAME.

Максимальное количество списков, выводимых в диалоговом окне, равно 10. Если этого вам покажется мало, откройте файл со скриптом в блокноте и измените значение параметра SIZEDIALOG в начале текста скрипта.

После скачивания и распаковки поместите модифицированный скрипт в ту же папку, в которой лежит и оригинальный скрипт Adobe.

Скачать

Обновление модифицированного скрипта FindChangeByList

Добавлено:

1. Внесение изменений в соответствии с версией InDesign CS4.

2. Если пользователь ничего не выделил, оригинальный скрипт без предупреждения начинал работать со всем документом. Это напрягало некоторых пользователей и по их просьбе было добавлено предупреждающее диалоговое окно:

3. По умолчанию модифицированный скрипт работает с файлом FindChangeList.txt , находящимся в папке  FindChangeSupport. Но также может работать и с другими файлами со списками, лежащими в той же папке. Для этого нужно, чтобы в этой папке не было файла FindChangeList.txt . Переименуйте его например в FindChangeList1.txt, а ваши собственные файлы со списками замен можете именовать следующим образом: FindChangeList2.txt , FindChangeList3.txt  и т.п. (некоторую часть кода для этого я позаимствовал у Мартина Фишера).

Скачать доработанный скрипт

12 комментариев »

  • Barro:

    Удобно, но приходится быть все время начеку.
    Диалоговое окно этого скрипта появляется, если что-то (фрейм, например) выделено инструментом «текст».
    А если ничего не выделено, то скрипт молча обрабатывает ВЕСЬ документ ВСЕМИ включенными в него наборами замен.

    Подскажите, можно ли это побороть? Т.е. чтобы при запуске скрипта диалоговое окно появлялось при любых условиях.
    Если есть возможность, пожалуйста, распишите, как исправить этот скрипт.

  • admin:

    В ближайшее время (скорее всего в выходные) буду немного шлифовать этот скрипт до совместимости с InDesign CS4, заодно и это исправлю. Как сделаю — сдесь напишу.

  • Barro:

    Спасибо большое. Ждем!

  • Barro:

    Уважаемый Борис, если сочтете возможным, просьба в диалоговом окне поменять последовательность Search Range.
    Чтобы первым (по умолчанию) стояло Selected story, а не Selection.
    По-моему, более удобно получится.

  • Barro:

    Огромное спасибо и за скрипт и за Вашу отзывчивость!

  • Barro:

    Сразу извиняюсь за занудство, но такие мысли есть.

    Не совсем понятно, зачем необходимо «предупреждающее окно».
    Получается просто лишнее нажатие на кнопку.

    Использование именно этого скрипта подразумевает, что юзер собирается выбирать тот набор замен, которым он хочет почистить текст. Значит сразу все наборы (как было в «первоначальной» версии по умолчанию)использовать практически никто не будет. Теперь это устранено, но окно выбора появляется после «предупреждающего». И надо подтвердить, что у меня ничего не выделено, чтобы все-равно попасть в диалог, где есть этот выбор «выделения».

    Имхо, гораздо удобнее, если после запуска скрипта сразу бы появлялось основное диалоговое окно, а там уж выбирай, к какому разделу/выделению/документу применять нужный набор.

  • admin:

    Диалоговые окна-то разные: если что-то выделено — появляется одно диалоговое окно, в котором есть возможность отметить зону поиска (Selected, Story, Document); а если ничего не выделено, (или выделен не текст, а прямоугольник) то появляется диалоговое окно уже без зоны поиска, предполагая в этом случае зоной поиска весь документ. О чем и идет предупреждение перед этим диалогом.
    Если вы не хотите получать это предупреждение, откройте в простом тестовом редакторе (Блокноте) скрипт и замените строки в функции main():
    if( myDisplayDialogForDoc(myMsg[0]) ) {
    myDisplayDialog2();} (- встречается 2 раза)
    на
    myDisplayDialog2(); (тоже соответственно 2 раза)

  • Barro:

    При таком редактировании скрипта появляется окно только с набором вариантов замены, без возможности выбора места.

    Вероятно, я не очень доходчиво изложил свои мысли.
    Я все время имел в ввиду, что хочется, чтобы сразу при запуске скрипта всегда появлялось именно это окно (с выбором и места и наборов)
    http://s59.radikal.ru/i165/0903/49/d13b2f5c4fe4.jpg

    Если возможно, подскажите, как этого добиться.
    Спасибо.

  • admin:

    Понимаете, вот человек выделил фотографию, запускает скрипт, и допустим выбирает вариант «Искать в выделенном». Как мы будем искать текст и менять его в фотографии? Поэтому идет предупреждение, что поиск будет по всему документу, и выбора {Story, Selection, Document} нет .
    Или человек ничего не выделил, запускает скрипт. Как мы ему будем предлагать среди прочих вариант «Искать в выделенном», если такого в этом случае в принципе нет? Поэтому дается предупреждение, что поиск пойдет по всему документу, и выводится сокращенный диалог без выбора зоны поиска.

  • Barro:

    Да, понимаю. И не утверждаю, что итоговый вариант скрипта должен выглядеть, как я нафантазировал выше…

    Хотя исходя из опыта работы, мне мой вариант кажется более удобным.
    Тогда у меня к Вам такой вопрос: возможно ли технически осуществить или нет следующий момент.

    Вы пишите: «человек ничего не выделил, запускает скрипт. Как мы ему будем предлагать среди прочих вариант “Искать в выделенном”, если такого в этом случае в принципе нет?»

    А я в противоположность этому рассуждаю так: запускаю скрипт, устанавливаю свой набор замен и “Искать в выделенном” после чего выделяю текст и командую скрипту начать работу.

    Т.е. не важно что я выделил или нет, в промежутке времени от запуска скрипта до команды скрипту «начать обработку».

    Если оно возможно, то и получится то, что я просил чуть выше…
    Или оно вообще не решаемо?

  • admin:

    С объектом поиска надо определяться заранее. Диалоговое окно блокирует все действия с документом и выделить ничего не удастся. Моих знаний на настоящий момент ой как недостаточно, чтобы обойти это ограничение.

  • Barro:

    Все ясно. Спасибо.
    Как всегда «всё и сразу» не получается 🙂
    Жаль, что адобовцы сразу не сделали свободную возможность выбора объекта, как это реализовано в «поиск/замена» в самом InD.

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.