Конвертация макросов из MCO в OOo [РЕШЕНО]

Автор Wap, 25 мая 2010, 20:02

0 Пользователи и 1 гость просматривают эту тему.

Wap

Добрый день  :)

Подскажите пожалуйста, реально ли самому адаптировать макросы из MSO в OOo.
С программированием не знаком.
Один из макросов приложил для примера.

[вложение удалено Администратором]

Рыбка Рио

Есть сайт, с помощью которого можно попробовать перевести макрос, а если не получается, там же внизу есть таблица соответствия. Ещё конвертер макросов есть видимо в платном варианте от Oracle (http://en.wikipedia.org/wiki/Oracle_Open_Office#Proprietary_components).
ubuntu 12.04 + LibO3.6.0

dr.Faust

Боюсь это не поможет, хотя на первый взгляд макрос прост, уж не знаю как остальные.
С другой стороны - переписать это руками по видимому труда не составит.
Свобода информации - свобода личности!

JohnSUN

В этом конкретном случае - макрос несколько сложнее, чем решаемая им задача.
Если перевести его текст сначала на русский язык, то получится приблизительно следующее:
Встречающиеся в тексте
       пробелы перед запятой,
               перед точкой,
               перед двоеточием,
               перед точкой с запятой,
               перед восклицательным знаком,
       а также "крышка",
                вертикальная черта,
                обратная косая,
                одиночная кавычка,
                такая противная жирная точка с кодом 149
       а также сочетания запятая-точка и
                запятая-запятая
считаются ошибочными и должны быть раскрашены в яркий цвет

И макрос последовательно для каждой из этих ситуаций выполняет поиск и замену формата.
Сомнения вызывает последний поиск-замена: там в качестве строки поиска задана пустая строка... Ну, не так уж это важно, может быть описка.
В ООо все эти поиски можно задать одной регулярной строкой:
(\ \,)|(\ \;)|(\ \:)|(\ \!)|(\ \.)|(\^)|(\-\,)|(\,\,)|(\,\.)|(\')|(\\)|(\•)|(\|)
А дальше просто!
Включаем запись макроса, запускаем поиск-замену, в качестве искомого вставляем эту строку, ставим птичку на "регулярных выражениях", в Формат-Эффекты шрифта выбираем красный или любой другой яркий цвет, просим заменить всё, останавливаем запись макроса и присваиваем ему имя bad_mark.
Получаем что-то такое:
sub bad_Mark
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(18) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 1
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "(\ \,)|(\ \;)|(\ \:)|(\ \!)|(\ \.)|(\^)|(\-\,)|(\,\,)|(\,\.)|(\')|(\\)|(\•)|(\|)"
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = "&"
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 3
args1(18).Name = "Quiet"
args1(18).Value = true

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

end sub


Задача решена без программирования
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Wap

Всем спасибо  :). Остальные два макроса (макросы не мои) из этой же оперы (применяю для вычитки книг).



JohnSUN

dr.Faust

Цитата: Wap от 26 мая 2010, 17:39Всем спасибо  . Остальные два макроса (макросы не мои) из этой же оперы (применяю для вычитки книг).
Ааа...
Для ООо где-то есть нормальное расширение Типографика.
Поищите.
У мну тоже есть, где-то но если и найду - то не сегодня...
Свобода информации - свобода личности!

Wap

Нашёл типографику http://extensions.services.openoffice.org/project/OOoTypographica
Будет времени посвободнее, посмотрю

Wap

1. Столкнулся с тем, что найти находит, а раскрашивать не хочет :( (но это, в принципе, второстепенно)
2. В MSO макросы вынесены на панель инструментов, а можно ли вынести макросы на панель инструментов в ООо?

Syzygy

Цитата: Wap от 27 мая 2010, 19:352. В MSO макросы вынесены на панель инструментов, а можно ли вынести макросы на панель инструментов в ООо?
Да, можно. Для этого нужно либо создать новую панель инструментов, либо поместить иконку макроса на уже существующую.
Сервис-Настройки... - вкладка Панели инструментов - выбираем нужную панель инструментов в списке Панель инструментов - кнопка "Добавить" - в левом списке Макросы - выбираем нужный.
A Matter of Life and Death