1 Востаннє редагувалося Betterthanyou (03.03.2023 19:43:34)

Тема: LibreOffice Basic Видалити зайву інформацію при копіюванні з телеграм

Якщо скопіювати з телеграм в LibreOffice Writer два і більше повідомлень буде додано також "Ім'я Прізвише, [XX.XX.XXXX XX:XX]"

Name Subname, [03.03.2023 17:42]
Приклад 1

Name Subname, [03.03.2023 17:42]
Приклад 2
а я хочу
Приклад 1

Приклад 2

Як його видалити за допомогою макроса на BASIC ?

Ось код на JS (працює в консолі браузера)

 
let str = "[HERE ARE PLACE FOR YOUR TEXT]"

let pattern = /\n.+,\s\[\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}\]/g;
let textWithoutPattern = str.value.replace(pattern, '');

Код на BASIC

Sub DeletePattern()
    Dim oDoc As Object
    Dim oText As Object
    Dim oCursor As Object
    Dim oMatches As Object
    Dim oRegExp As Object
    Dim sPattern As String
    Dim i As Integer
    
    oDoc = ThisComponent
    oText = oDoc.Text.createEnumeration()
    oCursor = oText.createTextCursor()
    sPattern = "(\w+\s)?\w+,\s\[\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}\]"
    oRegExp = createUnoService("com.sun.star.util.RegExp")
End Sub

https://www.openoffice.org/api/docs/com … eText.html

BASIC runtime error.
Property or method not found: createTextCursor

TextCursor - теж така помилка

На мій погляд документація досить "суха", немає прикладів. Тому скоріше всього те що я написав не буде робити...


Можливо хтось писав макроси, можете підказати як написати функцію ? В JS вже є робочий код - це простий реплейс. Все що потрібно зробити в BASIC це "пройтися" по всьому тексту і позаміняти.

P.S. Я знаю що овпен офіс і лібер офіс це різні програми, просто важко знайти документацію на лібер офіс. Тому перший лінк на овпен офіс.

Прихований текст
let textarea1 = document.querySelector('textarea.dont-break-out[name="text"][id="text"]');


let pattern = /\n.+,\s\[\d{2}\.\d{2}\.\d{4}\s\d{1,2}:\d{2}\]/g;
let textWithoutPattern = textarea1.value.replace(pattern, '');

textarea1.value = textWithoutPattern;

https://www.editpad.org/

2

Re: LibreOffice Basic Видалити зайву інформацію при копіюванні з телеграм

Увімкніть запис макросів і зробіть руками потрібні дії. Викличте діалог заміни тексту, вбийте там потрібні налаштування і т. д. В результаті вам згенерує макрос з кодом, який гарантовано працює.

Подякували: Betterthanyou, koala2

3

Re: LibreOffice Basic Видалити зайву інформацію при копіюванні з телеграм

Прихований текст

різні програми

wiki написав:

LibreOffice (/ˈliːbrə/)[a] is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice

4

Re: LibreOffice Basic Видалити зайву інформацію при копіюванні з телеграм

Пам'ятаю це. Після купівлі Sun Ораклом спільнота певний час придивлялася. Оракл спершу обіцяв ніц не робити без обговорення зі спільнотою; але потім замінив іконки в офісі на власні, і спільнота одразу форкнулася.

5

Re: LibreOffice Basic Видалити зайву інформацію при копіюванні з телеграм

Питання вже не актуальне. Пішов оффтопік про "расизм". Прошу закрити тему і перенести дискусії в розділ "Інше"

Подякували: leofun011