Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество абзацев с текстом ''. 
:(
    Опции темы
EDuard
Дата 15.2.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



Привет.
Как в word сосчитать количество абзацев с текстом '', т.е. пустых абзацев. через дельфи естественно. smile


--------------------

PM MAIL WWW ICQ   Вверх
EDuard
Дата 16.2.2006, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



Как вообще определить каков текст абзаца и какие элементы в него входят (рисунки, формулы, таблицы).


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 16.2.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



попробуй так:
Код

...
col:=WordApplication1.ActiveDocument.Paragraphs.Count;
for i:=1 to col do
   begin
   // как текст парагрофа получить только предпологаю, скорее что-то в стиле:
   WordApplication1.ActiveDocument.Paragraphs.Item(i)...
   ...
   end;
...


не знаю не проверял...
по экспериментируй с

WordApplication1.ActiveDocument.Paragraphs....
WordApplication1.ActiveDocument.Paragraphs.Item(i)....
WordApplication1.ActiveDocument.Paragraphs.Item(i).SelectNumber

и т.д....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 17.2.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



Albinos_x, все перепробовал, но так ничего не придумал. всегда 0 показывает.


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 17.2.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



Цитата(EDuard @ 17.2.2006, 13:43 Найти цитируемый пост)
всегда 0 показывает

0 чего :
WordApplication1.ActiveDocument.Paragraphs.Count; ???


попробуй так:
Код
...
var 
      col, i, spaceparagraphs:integer;
     L:TStringList; 
...
spaceparagraphs:=0;
L:=TStringList.Create;
col:=WordApplication1.ActiveDocument.Paragraphs.Count;
for i:=1 to col do
   begin
   L.Text:=WordApplication1.ActiveDocument.Paragraphs.Item(i).Range.Text;
   if L.Count=1 then
     begin
     if length(L[0])<=2 then
        spaceparagraphs:=spaceparagraphs+1; 
     end;
   end;
L.Free;
...


По идее работать должно, по крайней мере у меня возвращяет указанный мной абзац командой
Код

Memo1.Text:=WordApplication1.ActiveDocument.Paragraphs.Item(5).Range.Text;

и
Код

col:=WordApplication1.ActiveDocument.Paragraphs.Count;

у меня тоже работает...

Это сообщение отредактировал(а) Albinos_x - 17.2.2006, 17:37


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
EDuard
Дата 17.2.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



Albinos_x, нет
Код

WordApplication1.ActiveDocument.Paragraphs.Count;

всегда правильно считает.

0 показывал когда проверял текст так:
Код

WordApplication1.ActiveDocument.Paragraphs.Item(i).range.text;


По твоему примеру показывает 26 вместо 12.

Почему
Код

length(L[0])<=2

означает пустую строку?
Добавлено @ 18:53
Пардон, если документ пуст, то одну пустую строку все таки показывает, а вот если там текст с рисунками и формулами то похоже ошибается.


--------------------

PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 17.2.2006, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



Цитата(EDuard @ 17.2.2006, 18:45 Найти цитируемый пост)
означает пустую строку?

в строке имеются непечатные символы обозначающие конец абзаца , поэтому когда документ пуст в нем как минимум есть один пустой параграф...
2 (#13#7) символа в таблице, 1 - в обычном тексте (#13), рисунок если вставлен в контейнер "создайте рисунок" идёт как 2 символа (#1#21) и опять же конец абзаца #13, т.е. в абзац можно разместить несколько рисунков или рисунок и текст, тогда полученная строка будет равна : "#1#21ТЕКСТ#13"
таблица представляется в виде нескольких абзацев... приблизительно так:
таблица 2х3

|__абзац__|__абзац__|__абзац__|абзац
|__абзац__|__абзац__|__абзац__|абзац

т.е. последовательность символов #13#7 обозначают конец ячейки, 2 подряд последовательности обозначают конец строки
приблизительно, т.к. в одно ячейке может быть несколько абзацев....

сам ворд если не ошибаюсь абзацы не содержащие текст за обзац не принимает, поэтому если посмотреть статистику, цифры будут отличаться от полученных командой
WordApplication1.ActiveDocument.Paragraphs.Count;

колонтитулы за обзац не принимаются это точно... проверил...
Рисунок не вставленный в контейнер "создайте рисунок" как абзац не идет...

Это сообщение отредактировал(а) Albinos_x - 17.2.2006, 20:01


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 17.2.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



т.е. я немного ошибся....
нужно
Код

if length(L[0])<=1 tehn



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0780 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.