Курсовая работа: Delphi: работа с MS WORD
Здесь у нас целые переменные isectct, icofct, icohct обозначают соответственно количество разделов как таковых, количество нижних и верхних колонтитулов данного раздела. Переменная isec служит "номером" раздела, переменные icof, icoh "нумеруют" соответственно нижние и верхние колонтитулы в пределах данного раздела. Количество колонтитулов в разделе определяем так:
icofct:=WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Count;
icohct:=WordDocument1.DefaultInterface.Sections.Item(isec).Headers.Count;
Теперь уже можем "достать" текст из колонтитула:
CBWCount:=
WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Item(icof).Range.ComputeStatistics($00000000);
В данном случае мы для примера посчитали число слов, содержащихся в нижнем колонтитуле под номером icof, принадлежащем разделу под номером isec. Теперь можем написать "двойной" цикл для подсчета статистики верхних и нижних колонтитулов. Полностью это будет выглядеть так:
isectct:=WordDocument1.DefaultInterface.Sections.Count;
for isec:=1 to isectct do begin
icofct:=WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Count;
icohct:=WordDocument1.DefaultInterface.Sections.Item(isec).Headers.Count;
for icof:=1 to icofct do begin
CBWCount:=CBWCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Item(icof).Range.ComputeStatistics($00000000);
CBCCount:=CBCCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Item(icof).Range.ComputeStatistics($00000003);
CBSCount:=CBSCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Footers.Item(icof).Range.ComputeStatistics($00000005);
end;
for icoh:=1 to icohct do begin
CHWCount:=CHWCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Headers.Item(icoh).Range.ComputeStatistics($00000000);
CHCCount:=CHCCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Headers.Item(icoh).Range.ComputeStatistics($00000003);
CHSCount:=CHSCount+
WordDocument1.DefaultInterface.Sections.Item(isec).Headers.Item(icoh).Range.ComputeStatistics($00000005);
end;
end;
В переменных, к которым на каждом шаге добавляются результаты статистики, после перебора всех разделов накопится суммарная статистика слов, знаков с пробелами и знаков без пробелов во всех колонтитулах.