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

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

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

integro

Новая проблема

Подсчитывает количество символов работает.

А теперь макрос статистика, количество символов без пробелов.



Как вставить поле подсчета символов в колонтитул в LibreOffice 3.3?

Проблема в :

Вставить вставляется а вот учитывает также и символы в самом колонтитуле.

А требуется только в документе...


Вот в Microsoft Word проблем нет.

Перешли на LibreOffice 3.3 и возникла такая ерунда.


Открыв пустой документ а в колонтитуле уже к примеру 100 символов.

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

JohnSUN

Ответ на этот вопрос уже дал Клио. Предложенное решение работает. В чем проблема?

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

Рыбка Рио

Макрос - универсальное решение. В частном случае, когда в колонтитуле есть постоянное число символов (к примеру 300), то можно использовать формулу CHAR-300*PAGE (т.е. из общего числа символов вычитаете число символов в колонтитуле помноженное на количество страниц).
ubuntu 12.04 + LibO3.6.0

JohnSUN

integro, насколько я понял, хочет видеть эти данные только на первой странице. Повторять их в каждом колонтитуле нет необходимости.

А раз так, то напрашивается идея отказаться от колонтитула вообще, а таблицу со статистикой разместить просто в самом начале документа.

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

integro


integro

Цитата: Клио от 22 апреля 2011, 13:58
Макрос - универсальное решение. В частном случае, когда в колонтитуле есть постоянное число символов (к примеру 300), то можно использовать формулу CHAR-300*PAGE (т.е. из общего числа символов вычитаете число символов в колонтитуле помноженное на количество страниц).
Цитата: JohnSUN от 22 апреля 2011, 12:00Ответ на этот вопрос уже дал Клио. Предложенное решение работает. В чем проблема?

Шаблон
Без вывода количества строк.
http://forumooo.ru/index.php/topic,1463.msg11309.html#msg11309

integro

Проблема со строками исчерпана.

А вот проблема с подсчетом и выводом количества символов возникла.

integro

Цитата: JohnSUN от 22 апреля 2011, 13:26А раз так, то напрашивается идея отказаться от колонтитула вообще, а таблицу со статистикой разместить просто в самом начале документа.


Интересно.

Выложи файл с подобной таблицей.
А поле автор
поле даты созидания и дату изменения
и также полный путь к файлу имя файла

данное поле будет постоянно меняться в зависимость в какой каталоге сохранен документ.


Рыбка Рио

#8
Попробуете вот этот шаблон?
(может быть его нужно подредактировать, я не очень понимаю, почему иногда при нулевом количестве символов там получается не ноль)

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

integro

#9
Спасибо!
При много благодарен.
Цитата: Клио от 28 апреля 2011, 16:38я не очень понимаю, почему иногда при нулевом количестве символов там получается не ноль

Скорей всего учитывается сам колонтитул.
Вот и прибавляется.

попробую.


Кстати вот что у меня получилось слепить.

Только проблема осталась
символы выводятся с пробелами.

А желательно подсчет без пробелов.

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

Рыбка Рио

Есть ещё вариант с текстовыми объектами, т.к. символы в текстовых объектах не подсчитываются. См. файл.

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

Рыбка Рио

Цитата: integro от 28 апреля 2011, 16:46Кстати вот что у меня получилось слепить.
Библиотеку нужно вложить в файл, а иначе:

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

integro

Цитата: Клио от 28 апреля 2011, 21:48вложить в файл
Странно у меня всё работает.
посмотри библиотека и так в файле.

integro

Цитата: Клио от 28 апреля 2011, 21:48Библиотеку
Sub Main
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
NDok = StarDesktop.loadComponentFromURL( "private:factory/swriter", "_blank", 0, Array())
Ndocument   = NDok.CurrentController.Frame
Dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SelectedFormat"
args1(0).Value = 1
dispatcher.executeDispatch(Ndocument, ".uno:ClipboardFormatItems", "", 0, args1())

Poisk = NDok.createSearchDescriptor
Poisk.SearchRegularExpression = TRUE
Poisk.SearchString = "$" 'абзацы
A = NDok.findAll(Poisk).Count
Poisk.SearchString = "\n" 'обрыв строки
B = NDok.findAll(Poisk).Count
Poisk.SearchString = "\t" 'табуляция
C = NDok.findAll(Poisk).Count
Poisk.SearchString = " " 'пробел
D = NDok.findAll(Poisk).Count
p = chr(13)
E = NDok.CharacterCount 'всего символов
msgbox cStr(E)+ " - всего символов "+p+cStr(E-D)+ " - символов без пробелов "+p+cStr(A)+ " - абзацы "+p+cStr(B)+ " - обрывы строки "+p+cStr(C)+ " - табуляции "+p+cStr(D)+ " - пробелы " , 64
NDok.setModified(FALSE)
NDok.close(TRUE)
End Sub

Рыбка Рио

Цитата: integro от 29 апреля 2011, 10:26Странно у меня всё работает.
посмотри библиотека и так в файле.
Да, правда, библиотека в файле, но ошибку выдаёт, что событие назначено на библиотеку содержащуюся не в файле (location application - если не ошибаюсь) (видимо у вас вначале библиотека была в другом месте?) Короче, переназначение события на внутреннюю библиотеку решает эту пробелу и ошибка больше не возникает. (См. файл)

Насчёт символов без пробелов, файл шаблон для подсчета символов.ott работает верно. Там проблема со строчкой с подсчетом символов с пробелами (а она вам и не нужна - удалите её). Там вместо колонтитула новый стиль - "шапка", подсчет символов в котором не выполняется.

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