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

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

16 Июль 2019, 23:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: LibreOffice 3.3 статистика, количество символов без пробелов  (Прочитано 16452 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #15: 29 Апрель 2011, 11:23 »

Вот этот шаблон считает без ошибок и символы с пробелами и без пробелов (по крайней мере, в простейших случаях ошибок нет).

[вложение удалено Администратором]
Записан

ubuntu 12.04 + LibO3.6.0
integro
Участник
**
Offline Offline

Сообщений: 30


« Ответ #16: 29 Апрель 2011, 14:12 »

Вот этот шаблон
Код:

REM  *****  BASIC  *****

Sub Main

' для Lemojoe:
' Имеется текст. Необходим вывод на информационной табличке статистических данных:
' количество знаков с пробелами, количество знаков без пробелов. Чтобы подсчет
' можно было произвести в любой момент работы над документом.

   Dim doc as object
   Dim controller as object
   Dim textviewcursor as object ' всякие объекты там... не важно
   Dim letters as String ' выделенная строка с текстом
   Dim gap as Integer ' число пробелов
   Dim cursign as String ' текущий значок
   dim break as Integer ' число переносов строк
   Dim i as Integer ' счетчик
   gap = 0
   break = 0

   ' получаем current document -> controller -> view cursor
   doc = ThisComponent
   controller = doc.getCurrentController()
   textviewcursor = controller.getViewCursor()


   letters = textviewcursor.getString ' забираем выделенный текст

   For i = 1 To Len(letters)

       cursign = Mid (letters, i, 1)

       If cursign = chr(32) Then ' Считаем пробелы
           gap = gap + 1 ' один да один - два

       ElseIf cursign = chr(10) Or cursign = chr(9)  Then ' Считаем переносы строк
           break = break + 1
       End If

   Next
   msgbox "Всего знаков: " & Len(letters) - break & chr(13) & "Знаков без пробелов: " & Len(letters) - gap - break

End Sub
Записан
integro
Участник
**
Offline Offline

Сообщений: 30


« Ответ #17: 29 Апрель 2011, 14:14 »

в простейших случаях


А подсчет количества строк.
Не получается перенести с моего варианта
макроса в твой.


Благодарен.
Шаблон теперь верно выводится.


Записан
integro
Участник
**
Offline Offline

Сообщений: 30


« Ответ #18: 29 Апрель 2011, 14:17 »

Вот этот шаблон считает без ошибок
Благодарен.

Шаблон работает.

Теперь верно!

Это я про первый вариант шаблона, в нем были проблемы с пробелами.
Записан
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #19: 29 Апрель 2011, 14:48 »

Вот ещё 1 вариант (с числом строк). Там теперь используются поля пользователя CharCount1, CharCount2, LineCount, которые обновляются маркросами. Чтобы увидеть что поле обновилось нужно нажать на "предварительный просмотр" (в Windows Vista почему-то поля не сразу обновляются, точнее обновляются, но отображаются старые значения, если не нажать на предварительный просмотр).
Не получается перенести с моего варианта
макроса в твой.
Эти маркросы даже более оптимальны. Наверное, вы не знаете, как кнопку отредатировать? Нужно вызвать панель инструментов "Элементы управления", нажать на ней на кнопку "Режим разработки". После этого нажать правой кнопкой мышки на кнопке и выбрать "События". Там можно назначить новое/отредактировать старое событие. В режиме разработки кнопки можно копировать.

[вложение удалено Администратором]
Записан

ubuntu 12.04 + LibO3.6.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #20: 29 Апрель 2011, 15:50 »

(в Windows Vista почему-то поля не сразу обновляются, точнее обновляются, но отображаются старые значения, если не нажать на предварительный просмотр)
Есть смысл поклацать флажками в настройках. Если и не поможет, то хотя бы попытатемся... (Даже если все флажки выставлены, все-равно нужно переставить-сохранить-переставить-и опять сохранить: может отображаться не настоящее значение параметра, а "виртуальное")

[вложение удалено Администратором]
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Рыбка Рио
Форумчанин
***
Offline Offline

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


« Ответ #21: 29 Апрель 2011, 16:34 »

Нужно было добавить в макросе строчку: Doc.TextFields.refresh() после изменения значения поля. Теперь всё работает. См. файл.

[вложение удалено Администратором]
« Последнее редактирование: 29 Апрель 2011, 23:54 от Клио » Записан

ubuntu 12.04 + LibO3.6.0
integro
Участник
**
Offline Offline

Сообщений: 30


« Ответ #22: 29 Апрель 2011, 22:42 »

Браво маэстро!

Выражаю благодарность
Клио и JohnSUN
Что откликнулись и помогли.


Земной поклон forumooo.ru.
Записан
integro
Участник
**
Offline Offline

Сообщений: 30


« Ответ #23: 13 Май 2011, 07:14 »


 1. создать новый документ по шаблону в OpenOffice
 2. сохраняю его в формате Word 2000 *.doc
 3. закрыть документ
 4. открыть его снова в OpenOffice и убедиться, что все работает

 У меня после открытия сохраненного документа подсчет символов НЕ
 РАБОТАЕТ!! Проверь


Я так понимаю данной возможности в OpenOffice возникают затруднения?
Записан
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

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