Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Вниз

Поиск жирного шрифта в word   Найти похожие ветки 

 
Bratskiy ©   (2005-12-27 06:21) [0]

Привет всем! Помогите пожалуйста. У меня такая проблема: мне нужно написать код, который ищет в документе Word, номера строк, которые выделены жирным шрифтом. Я попробовал решить эту задачу так:

e:=WD.Range.End_;
r:=WD.Range(a,b);
while (r.Font.Underline=0)and(b<e) do
   begin      
     r:=WD.Range(a,b);
     Application.ProcessMessages;
   end;
после выхода из цикла значение переменной a будет решением данной
задачи. Но возникает проблемма, полученная программа работает очень медленно. Подскажите пожалуйста как добится решения другим более быстрым способом. Заранее благодарен


 
umbra ©   (2005-12-27 14:06) [1]

а как a и b изменяются? приведенный цикл может быть бесконечным


 
umbra ©   (2005-12-27 14:07) [2]

и почему проверяется, подчеркнутость шрифта?


 
Bratskiy ©   (2005-12-28 04:29) [3]

Я немного не тот код написал, торопился, а потом когда отправил, увидел что не то, а уже поздно, сообщение отправлено. На самом деле у меня так:
var a,b:OleVariant;
.......................
a:=1; b:=2;
e:=WD.Range.End_;
r:=WD.Range(a,b);
while (r.Font.Bold=0)and(b<e) do
  begin  
    inc(b);inc(b);
    r:=WD.Range(a,b);
    Application.ProcessMessages;
  end;
Вообще задача у меня разбить документ, который представляет из себя новостную ленту на отдельные новости, и соотнести каждую новость к определённому разделу и занести в базу. Разделы в ленте выделяются жирным и подчёркнутым шрифтом, а новости внутри разделов просто жирным шрифтом поэтому условие в цикле While у меня сложнее, но приводить я его не стал. Таким способом одна лента обрабатывается около 10 минут а их целая куча.


 
k2 ©   (2005-12-28 09:00) [4]

новостная лента у меня почемуто с html ассоциируется, а там лучше через таги


 
Bratskiy ©   (2005-12-28 09:21) [5]

Эти самые ленты приходят по электронной почте в виде прикреплённых документов


 
k2 ©   (2005-12-28 11:27) [6]


procedure FindBoldAndUnderline;
var
 wapp: WordApplication;
 doc: WordDocument;
 r: OleVariant;
 found: WordBool;
begin
 wapp := GetActiveOleObject("Word.Application")as WordApplication;
 doc := wapp.ActiveDocument;
 r := doc.Content;
 repeat
   found := false;
   r.find.ClearFormatting;
   r.find.Font.Bold := true;
   r.Find.Font.Underline := wdUnderlineSingle;
   found := r.Find.Execute(EmptyParam, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, true, EmptyParam, true, mptyParam,EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam);
   if found then begin
     r.StartOf(wdCharacter, wdMove);
     r.InsertAfter("Новость:  ");
     r.Move(wdParagraph, 1);
   end;
 until
   not found;
end;


попробуй такой вариант - будет быстрее?


 
Bratskiy ©   (2005-12-28 11:48) [7]

Спасибо огромное, работае действительно гораздо быстрее. С наступающим!!!


 
Bratskiy ©   (2005-12-28 11:49) [8]

Спасибо огромное, работает действительно гораздо быстрее. С наступающим!!!


 
k2 ©   (2005-12-28 11:54) [9]

на здоровье :) а просто интересно - насколько быстрее?


 
k2 ©   (2005-12-28 11:57) [10]

и кстати нижеследующее вынести перед циклом (поспешишь - людей насмешишь :))
  r.find.ClearFormatting;
  r.find.Font.Bold := true;
  r.Find.Font.Underline := wdUnderlineSingle;



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.049 c
15-1184958222
Tab
2007-07-20 23:03
2007.08.19
в какой кодировке сохранить тхт файл


2-1185494148
Раф
2007-07-27 03:55
2007.08.19
Форма на панели задач...


15-1185033159
Yanis
2007-07-21 19:52
2007.08.19
Мультфильмы не для детей


1-1181213151
DmitrichJ
2007-06-07 14:45
2007.08.19
Indy и кодировка


2-1185266383
Th
2007-07-24 12:39
2007.08.19
Как узнать что пользователь залогинился в системе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский