LibreOffice Write Автозамена

Автор Ципихович Эндрю, 10 ноября 2024, 11:46

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

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

LibreOffice Writer, меню «Сервис»→«Автозамена» пункт «Параметры автозамены....» как можно вывести все встроенные автозамены кодом VBA?
нагуглил - но ОР кода выше гор
Sub ListAutoCorrectEntries()
    Dim oDoc As Object
    Dim oAutoCorrect As Object
    Dim oEntries As Object
    Dim i As Integer
    ' Получаем текущий документ
    oDoc = ThisComponent
    ' Получаем объект автозамены
    oAutoCorrect = ???
    ' Получаем все записи автозамены
    oEntries = ???
    ' Перебираем и выводим все записи
    For i = 0 To oEntries.getCount() - 1
        Dim entry As Object
        entry = oEntries.getByIndex(i)
        MsgBox "Замена: " & entry.getSearchString() & vbCrLf & "На: " & entry.getReplaceString()
    Next i
End Sub
как подправить?

sokol92

Цитата: Ципихович Эндрю от 10 ноября 2024, 11:46как можно вывести все встроенные автозамены кодом VBA?
нагуглил - но ОР кода выше гор
Если использовать VBA (только MS Windows) вместо LO Basic, то кода будет еще больше.  :)

Вас интересует список автозамен, которые мы видим в диалоге Меню / Сервис / Автозамена / Параметры автозамены, вкладка "Заменить"?

В Msgbox этот список не поместится.  :)
Владимир.

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

Цитата: sokol92 от 10 ноября 2024, 15:27Вас интересует список автозамен, которые мы видим в диалоге Меню / Сервис / Автозамена / Параметры автозамены, вкладка "Заменить"?
да, они
Цитата: sokol92 от 10 ноября 2024, 15:27В Msgbox этот список не поместится
ну в документ тогда вставить, как?

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

ну и сразу напрашивается как кодом добавить свои?

sokol92

Эта информация содержится в файле ..\LibreOffice\4\user\autocorr\acor_ru-RU.dat.
Этот файл по структуре является zip-архивом, файл DocumentList.xml этого архива содержит список замен (можно просмотреть, например, в браузере).

Насчет работы с этим списком из макроса поищите в сети - должно быть. О результатах сообщите, пожалуйста.
Владимир.

sokol92

Вот тема, в которой активное участие приняли наши форумчане. Не думаю, что с августа 2023 года что-то в этой тематике существенно изменилось.
Владимир.

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

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

sokol92

#7
Цитата: Ципихович Эндрю от 12 ноября 2024, 18:53чтобы этот файл с заменами появился нужно добавить хотя бы одну замену
Если файла с заменами в папке autocorr пользователя нет, то файл можно скопировать из папки autocorr приложения (../LibreOffice/share/autocorr). Свойство AutoCorrect из PathSettings содержит пути к указанным выше папкам.

Цитата: Ципихович Эндрю от 12 ноября 2024, 18:53загнул конечно ну начнём с миллиона, какие подводные камни могут быть на  пути?
Интерфейсы работы с xml-файлами сейчас достаточно быстрые.

Владимир.

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

Цитата: sokol92 от 12 ноября 2024, 19:47Интерфейсы работы с xml-файлами сейчас достаточно быстрые.
ну и большой гут - не придётся городить огород....
подскажите как
программно отловить событие возникновение замены - это ДО нажатия пробела и ДО её срабатывания?
программно изменить этот триггер срабатывания замены (пробел) на другой?
программно в случае надобности отменить замену?

sokol92

Этот вопрос выходит за границы моих познаний...  :)
Этот товарищ вроде бы знаком с автозаменами в Writer.
Владимир.

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

sokol92 - понял, спасибо за ссылку

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

Цитата: sokol92 от 12 ноября 2024, 19:47LibreOffice/share/autocorr)
посмотрел
C:\Users\start\AppData\Roaming\LibreOffice - и там только папка "4" НЕТ папки "share", и как быть?

sokol92

Точные данные - у свойства AutoCorrect (см. #7).
Владимир.

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

Цитата: sokol92 от 13 ноября 2024, 13:20Точные данные - у свойства AutoCorrect (см. #7).
это о чём речь
1
Цитата: sokol92 от 12 ноября 2024, 19:47Если файла с заменами в папке autocorr пользователя нет, то файл можно скопировать из папки autocorr приложения (../LibreOffice/share/autocorr).
или о
2
Цитата: sokol92 от 12 ноября 2024, 19:47Свойство AutoCorrect из PathSettings содержит пути к указанным выше папкам.
если второе, то там честно говоря я ничего не понял....


sokol92

Значение свойства AutoCorrect - два URL пути к папкам, разделенные точкой с запятой.
Об этих папках и идет речь в данной теме.
Владимир.