Выделение одинаковых слов

Автор Ципихович Эндрю, 30 января 2024, 15:35

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

Ципихович Эндрю

здравствуйте можно это сделать в либре, как в блокноте++ светло зелёным цветом после клика левой клавишей мыши=ЛКМ?
спасибо

Ципихович Эндрю

#1
прикрепил образец
надеюсь понятно, что это должно быть в макросе Sub AutoOpen() - думаю в либре он также называется также как как и в Ворде))

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

Цитата: economist от 30 января 2024, 20:04Расширение AltSearch видели?
теперь да: https://extensions.libreoffice.org/en/extensions/show/alternative-dialog-find-replace-for-writer
оно? если да
Описание

     Быстрый выбор предустановленных регулярных и расширенных выражений
     Искомый или замененный текст может содержать один или несколько абзацев.
     Поиск блока абзацев, разделенных двумя текстовыми знаками
     Множественный поиск и замена за один шаг
     Поиск: Закладки, Заметки, Текстовые поля, Перекрестные ссылки и Ссылки на их содержимое, имя или отметку и их вставка.
     Поиск и вставка сноски и концевой сноски (только начиная с версии OOo 2.3). Можно сразу выделить тексты всех сносок или концевых сносок и присвоить им любой стиль.
     Поиск объектов Таблиц, Картинок и Текстовых фреймов по их названию; их можно заменить любым текстом и т.п.
     Изменение найденного или замененного текста: стиль абзаца, стиль символов, стиль списка, URL-адрес гиперссылки и установка свойств.
     Вставка и замена: содержимое буфера обмена, счетчик замен вставки и номер страницы.
     Шестнадцатеричный и десятичный символ представления для поиска и замены
     Поиск справочной страницы и разрыва столбца и их настройка или деактивация
     Поиск похожей или одинаковой части текста, отформатированной вручную, по наведению курсора
     Подсчет найденных вхождений
     Перенаправление результата замены выражения в другой текстовый файл
     Пакетный режим: сохранение и загрузка параметров поиска и замены; можно сохранить несколько последовательных поисков и замен в одной последовательности, и все это будет быстро выполняться после этого. Выполните пакет с несколькими открытыми текстовыми документами вместе.
     Самодиалог для быстрого назначения сочетаний клавиш пакетам
     Сохранять заглавные буквы — если найденный текст начинается с заглавной буквы, замена текста также начнется с заглавной буквы.
     Поиск стиля абзаца, символа и списка; возможность выбрать стиль из меню
     Встроенная справка (http://www.volny.cz/macrojtb/HelpAltSearch_en.html)
     Языки: английский, чешский, русский, испанский, немецкий, французский, голландский, итальянский

Дополнительная документация: http://macrojtb.hys.cz/AltSearchScr_en.html.
из нужного как я понял, то, что подчёркнул и то не факт, что будет аналог блокнота++
ну даже если так, а можно самому написать чтобы было точно то, что нужно и без лишнего, например GUI, не подскажите код? спасибо

sokol92

Цитата: Ципихович Эндрю от 30 января 2024, 21:11можно самому написать чтобы было точно то, что нужно и без лишнего, например GUI, не подскажите код
LibreOffice - вселенная с открытым кодом. Если какое-то расширение выполняет необходимую Вам функцию, что Вы можете посмотреть исходный код программ, входящих в расширение (на Basic или Python).
Владимир.

economist

А чем коробочный поиск и подсветка всех вхождений не устраивает: Ctrl+F - блабла - Найти все? По моему программисты OpenOffice|LibreOffice все предусмотрели, нужно лишь изучить базовый функционал.

Notepad++ ориентирован на кодеров, там понятно зачем подсвечивать (и одновременно исправлять) все вхождения, скажем, неудачно названной переменной. Но в текстовом редакторе общего назначения - подобные пожелания намекают не неизученность функционала или его неправильное использование.

Опять вангую и привожу пример. В бизнесе почти всегда есть "именованные сущности", которые, тем не менее, часто переименовывают. Например был проект "Строительство космодрома Восточный-2", а вскоре стал "Строительство космодрома Восточный-2. Корректировка 1." Вот чтобы во всех нужных доках ручками не заменять одно на другое - есть Поля пользователя по Ctrl+F2. С ними мы меняем одно подсвеченное серым (любое) Поле, в любом месте дока и получаем нужное во всем доке. При этом новое "название-Поле" прекрасно переносится по слогам, вписывается по ширине, не разрывается где не надо и разрывается где надо. То есть форматирование дока - не портится. Любой другой способ (замена, использование полей-контролов или Автотекста) даст кучу артефактов переверстки: висячие строки/абзацы/пустые страницы/сдвиг-наложение картинок итп кошмар, который, конечно же, выявится только после распечатки на бумаге и прошивания, прямо на совете директоров, когда что-то еще более страшное произойти уже не может (но произошло).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

Цитата: Ципихович Эндрю от 30 января 2024, 15:35светло зелёным цветом
ну придётся подкорректировать, нужно именно выделить=подсветить, как это бы было сделано вручную выделив одно слово, а затем выделив с зажатым контролом другое слово и применительно к ворду=либре голубым цветом, как это сделать?
скрин с ворда, но в данном случае ворд=либра, если что извините))

bigor

Поддержать наш форум можно здесь

Ципихович Эндрю

решил начать с бейсика:

Sub HighlightWord()

  'объект текущий документ
  Dim oDoc As Object: oDoc = ThisComponent
'искомый текст
  Dim txt As String: txt = "или"
' Перебрать все совпадения слова в текущем документе
For Each match In oDoc.FindText(txt)
' Установить цвет подсветки шрифта совпадения
match.CharColor = RGB(0, 255, 0)
Next match

End Sub
как подправить строку: For Each match In oDoc.FindText(txt)
на неё ругается
и что то мало верится чтобы получился результат как на скрине в предыдущем посте - как подправить?

bigor

Цитата: Ципихович Эндрю от  1 февраля 2024, 12:52решил начать с бейсика:
это какой то не такой бейсик :) может с поддержкой vba и взлетит, но правильнее, наверное делать в starbasic через finddescriptor. Хотя я думаю результат вас не порадует, даже если вы все закрасите как хотите, то эту закраску потом придется макросом и снимать, что бы красить другое.
Поддержать наш форум можно здесь

Ципихович Эндрю

Цитата: bigor от  1 февраля 2024, 13:36Хотя я думаю результат вас не порадует, даже если вы все закрасите как хотите, то эту закраску потом придется макросом и снимать, что бы красить другое.
не в ту сторону
ни что красть не нужно, нужно подсветить в бейсике, подскажите как добиться того, что на скрине в #7? спасибо

sokol92

Цитата: Ципихович Эндрю от  1 февраля 2024, 13:46как добиться того, что на скрине в #7? спасибо
1. Запуститe макрорекордер.
2. Ctrl+H, Наберите нужное слово, "Найти все" (Find All), закройте диалог. Должны быть выделены нужные Вам слова.
3. Остановите запись макроса и сохраните макрос в удобном месте.
Владимир.

Ципихович Эндрю

спасибо за ответ
Цитата: sokol92 от  1 февраля 2024, 14:57Ctrl+H
вау Америка открылась для меня.....
я сие искал ктрл+F, а тут душевно "Н" - найти, что ли? так нет же латинская "Н"
правда в меню Правка можно было ранее увидеть и открыть Америку
но нужно ещё понять где этот магнитофон-макрокердер
хожу меж трёх сосен и не найду
где находится остановить запись нашёл и начать запись что-то никак, где он?

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

я знал, что макрорекордер даёт много мусора, но такого я не ожидал............нет слов
Sub HighlightWord()

    'объект текущий документ
    Dim oDoc As Object: oDoc = ThisComponent
   'искомый текст
    Dim txt As String: txt = "или"
   ' Перебрать все совпадения слова в текущем документе
   For Each match In oDoc.FindText(txt)
   ' Установить цвет подсветки шрифта совпадения
      match.CharColor = RGB(0, 255, 0)
   Next match

   End Sub
как подправить строку: For Each match In oDoc.FindText(txt)
на неё ругается
мне нужно, чтобы получился результат как на скрине в посте #7 - как подправить или написать с нуля?
как я понимаю цена вопроса десяток строк