|
![]() |
#1 |
Участник
|
Разумеется следовало оптимизировать некоторые select-ы
Но (!) самое интересное было в определении версии Word <экземпляр Com класса>.version() Метод FindField класса ComWordDocument_RU содержит следующий кусок кода: ................... if (substr(m_comApplication.version(), 1, 1) >= '9') // Word 2000 and later { field = fields.item(_bookMark); } else { for (i=1 ; i<= fields.count() ; i+=1) { fieldTmp = fields.item(i); ...................... substr(m_comApplication.version(), 1, 1) возвращает 1, если Word 2003. Код исправлен следующим образом: ........... sbuf =substr(m_comApplication.version(), 1, 1); if (sbuf >= '9' || sbuf == '1') // Word 2000 and later { field = fields.item(_bookMark); } else { for (i=1 ; i<= fields.count() ; i+=1) { fieldTmp = fields.item(i); .................. Работает кратно быстрее Известна ли версия Word, которая начинается на 1 и раньше 2003? |
|