макрос Calc - как получить позицию переноса

Автор timal1234, 22 ноября 2024, 23:32

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

mikekaganski

В смысле? Вы хотите угадать язык просто строки? Это Вам к искусственному интеллекту, LibreOffice такого не умеет.
С уважением,
Михаил Каганский

timal1234

Цитата: mikekaganski от 23 ноября 2024, 17:23Вы хотите угадать язык просто строки?
ну да (язык слова).

есть слово, надо сделать перенос... слово может быть RU или ENG ....

неужели невозможно узнать язык слова?
или только анализировать код ASCII ?

timal1234

Цитата: mikekaganski от 23 ноября 2024, 17:23LibreOffice такого не умеет.
как же так? язык ячейки умеет получить, а язык строковой переменной - нет ?

mikekaganski

Если только en/ru, то тогда это просто - именно по кодам (Unicode). Меньше 128 - английский.
С уважением,
Михаил Каганский

mikekaganski

Цитата: timal1234 от 23 ноября 2024, 17:31как же язык ячейки умеет получить, а язык строковой переменной - нет ?

Возможно, потому что у ячейки есть такое свойство? Причём это свойство никак не мешает пользователю выставить язык русский, а написать по-английски.
С уважением,
Михаил Каганский

timal1234

Цитата: mikekaganski от 23 ноября 2024, 17:31Если только en/ru, то тогда это просто - именно по кодам (Unicode). Меньше 128 - английский.
вот по-моему на этом я и завалился, когда пытался сделать перенос через
vHyphen.hyphenate(STR_IN, aLocale, 11, emptyArgs())

sokol92

Цитата: mikekaganski от 23 ноября 2024, 17:23Это Вам к искусственному интеллекту, LibreOffice такого не умеет.
@timal, попробуйте поиграться с сервисом LanguageGuessing . Расскажите о результатах.
Владимир.

mikekaganski

#37
@sokol92, это конечно интересно, но плохому учить не нужно! ;)

Вот примитивная функция, определяющая язык по одной первой букве:

function simpleLangOfWord(byval word)
 word = trim(word)
 l = new com.sun.star.lang.Locale
 if Asc(word) < 128 then
  l.Language = "en"
  l.Country  = "US"
 else
  l.Language = "ru"
  l.Country  = "RU"
 end if
 simpleLangOfWord = l
end function
С уважением,
Михаил Каганский

timal1234

ну что ж  :'(  ... буду анализировать ASCII-код

timal1234

Цитата: mikekaganski от 23 ноября 2024, 17:37Вот примитивная функция, определяющая язык по одной первой букве:
это легко  ;D  и я уже сделал сам  ;D  ;D  ;D
    IF Asc(STR_IN) < 128 THEN
        ' ----- ENG -------
        aLocale.Language = "en"  'Использовать Английский язык
        aLocale.Country  = "US"      'Использовать Соединенное королевство (США) как страну
        '---------------------
    ELSE
        ' ----- RUS -------
        aLocale.Language = "ru" 'Использовать Русский язык
        aLocale.Country = "RU" 'Использовать Россию как страну
        '---------------------
    END IF
но всё равно, СПАСИБО !

kompilainenn

К ремарке про немецкий в школе и проблемы с английским сейчас : я тоже учил немецкий в школе и универе, но когда я пришел в проект, стал нужен английский и я его начал учить и до сих пор учу, вроде как то получается даже.

К ремарке про "я не программист" - вы программист, раз пишете программу и у вас получается.
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

timal1234

#41
Цитата: kompilainenn от 23 ноября 2024, 18:54но когда я пришел в проект, стал нужен английский и я его начал учить и до сих пор учу,
а у меня не хватает времени и на то (учить английский) и на это (макросы) ;D
я ещё и Java хотел поизучать.... но воз и ныне там...
ну или это отговорка, чтоб не учить  ;D

ЦитироватьК ремарке про "я не программист"
имелось ввиду, что это не моя профессия, я скорее пытаюсь программировать  ;D