LibreOffice 3.3 статистика, количество символов без пробелов

Автор integro, 22 апреля 2011, 11:29

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

Рыбка Рио

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

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

integro

Цитата: Клио от 29 апреля 2011, 11:23Вот этот шаблон


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

Цитата: Клио от 29 апреля 2011, 11:23в простейших случаях


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


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



integro

Цитата: Клио от 29 апреля 2011, 11:23Вот этот шаблон считает без ошибок
Благодарен.

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

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

Это я про первый вариант шаблона, в нем были проблемы с пробелами.

Рыбка Рио

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

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

JohnSUN

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

[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Рыбка Рио

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

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

integro

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

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


Земной поклон forumooo.ru.

integro


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

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


Я так понимаю данной возможности в OpenOffice возникают затруднения?