Render.ru

Даёшь макросы в индизайне!!

#1
Замучался я пользоваться find&replace в индизайне! Постоянно нужно делать одни и те же операции... но иногда в разном порядке, иногда не все... и ЗАМУЧАЛСЯ я каждый раз набирать текст в "найти" и "заменить", а так же стили форматирования выставлять... Может кто-нибудь знает плугинчик какой, который может это всё как-то автоматизировать? ...была бы обычная автозамена - написал бы скрипт на ВБА... Но вот что-то не разобрался как там задавать стили для поиска и замены (например найти по шаблону "^9^9:^9^9", заменить всё это на "[<искомое выражение>] - " и сделать жирным и красным... Ну это пример... Может кто подкинет скриптик тогда уж для изучения?
 
#2
Такаая замена делается достаточно просто: заранее определяешь Character Style, и вместе с заменой комбинации символов велишь этот Style назначать.

А вот иметь приладу для хранения списков замен, это да, было бы здорово.
 
#3
http://www.rudtp.ru/scripting.asp

там есть несколько скриптов для индиза с исходниками...
 
#4
Ну так понятно, что style делать можно... Но в visual basic-е фиг знает как это прописать... Все скрипты, которые видел - работают с голым текстом, без форматирования...
Наверно плохо искал я ;(
 
#5
Да видел я их все уже... Они работают с голым текстом и ищут средствами бейсика, а не индизайна. Т.е. я вот например не понял как там написать чтобы искалось, к примеру, строчка по шаблону "^9^9.^9^9"... Может кто-нить поподробней может объяснить?
 
#6
в AppleScript например предусмотрены операции которые как раз делают поиск/замену
наверняка есть сопоставимые команды в VB
 
#7
Не знаю, не нашёл что-то путных... ну VB - это тебе не AppleScript! :-(
 
#9
Ых, вспомним свое zх-spectrum-oвское прошлое - если не знаешь как это делать посмотри как это делают другие :) Сразу предупреждаю, что в визуал бэйсике ни в зуб ногой... Значится провел эксперимент в ворде записал макрос по замене (для примера) длинного тире на дефис:
--------------------------------
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 05.01.2003 Mikola
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^+"
.Replacement.Text = "-"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
------------------------------------
видим, что поиск/замена присутствует, равно как и строчка по шаблону...
 
#10
А вот и прямой ответ на вопрос о поиске и замене с применением аттрибутов:

http://support.adobe.com/devsup/devsup.nsf/docs/51579.htm

Там исходники на C++ есть, и памятуя, что «настоящий программист напишет программу на FORTRAN-е, используя любой язык программирования», применить это в VB не составит труда.
 
#12
Вообще-то в VBA это тоже всего одна строка:

Selection.Find.Execute Replace:=wdReplaceAll

А всё остальное это начало и конец процедуры и определение параметров поиска и замены. В AS разве этого делать не надо?
 
Сверху