Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Апрель 2021, 17:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Конвертация макросов из MCO в OOo [РЕШЕНО]  (Прочитано 8444 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Wap
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 4


« Стартовое сообщение: 25 Май 2010, 19:02 »

Добрый день  Улыбка

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

[вложение удалено Администратором]
« Последнее редактирование: 6 Июнь 2010, 10:09 от Syzygy » Записан
Рыбка Рио
Форумчанин
***
Offline Offline

Сообщений: 1 678


« Ответ #1: 25 Май 2010, 19:45 »

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

ubuntu 12.04 + LibO3.6.0
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Ответ #2: 25 Май 2010, 20:42 »

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

Свобода информации - свобода личности!
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 26 Май 2010, 16:05 »

В этом конкретном случае - макрос несколько сложнее, чем решаемая им задача.
Если перевести его текст сначала на русский язык, то получится приблизительно следующее:
Код:
Встречающиеся в тексте
       пробелы перед запятой,
               перед точкой,
               перед двоеточием,
               перед точкой с запятой,
               перед восклицательным знаком,
       а также "крышка",
                вертикальная черта,
                обратная косая,
                одиночная кавычка,
                такая противная жирная точка с кодом 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
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 4


« Ответ #4: 26 Май 2010, 17:39 »

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



JohnSUN
Записан
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Ответ #5: 26 Май 2010, 19:58 »

Всем спасибо  . Остальные два макроса (макросы не мои) из этой же оперы (применяю для вычитки книг).
Ааа...
Для ООо где-то есть нормальное расширение Типографика.
Поищите.
У мну тоже есть, где-то но если и найду - то не сегодня...
Записан

Свобода информации - свобода личности!
Wap
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 4


« Ответ #6: 27 Май 2010, 18:14 »

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

Пол: Мужской
Сообщений: 4


« Ответ #7: 27 Май 2010, 19:35 »

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

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #8: 27 Май 2010, 19:41 »

2. В MSO макросы вынесены на панель инструментов, а можно ли вынести макросы на панель инструментов в ООо?
Да, можно. Для этого нужно либо создать новую панель инструментов, либо поместить иконку макроса на уже существующую.
Сервис-Настройки... - вкладка Панели инструментов - выбираем нужную панель инструментов в списке Панель инструментов - кнопка "Добавить" - в левом списке Макросы - выбираем нужный.
Записан

A Matter of Life and Death
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!