Войти

Показать полную графическую версию : Парсер по документу WORD


Frost_Imp
25-09-2009, 15:14
Всем доброго времени суток!
Очередной вопрос от лентяя =)
Есть у меня документ Word. Необходимо:
1. Найти в нем определенный текст
2. Скопировать в буфер (или присвоить значение переменной) текста, который находится правее найденного (до конца строки).
Одна из проблем в том, что документ изначально не doc, а rtf. Имеет это принципиальное значение или нет? Ведь в конечном итоге открывается документ Вордом.
Вторая проблемка... Есть, конечно, UDF-ка для Ворда, но для меня, убогого, там слишком сложно. Вот я и думаю, может есть у кого-нибудь что-нибудб более менее рабочее?

Stomper
25-09-2009, 16:26
Парсит файл c:\123.rtf и выводит номера телефонов, расположеные после кодового слова "Телефон:" :)

#include <Word.au3>
$tel_digs = "0123456789()-+ "
$srch_phrs= "Телефон:"
$sSourceFile = "c:\123.rtf"
$oWord = _WordCreate($sSourceFile, 0, 0)
$oDoc = _WordDocGetCollection($oWord, 0)
$strs=$oDoc.Range.Text
_WordQuit($oWord, 0)
While StringInStr($strs,$srch_phrs)<>0
$n1=StringInStr($strs,$srch_phrs)
$n1=$n1+StringLen($srch_phrs)
$n2=$n1
While StringInStr($tel_digs,StringMid($strs,$n2,1))<>0
$n2=$n2+1
WEnd
$OutStr=StringMid($strs,$n1,$n2-$n1)
MsgBox(0,"",$OutStr)
$strs=StringTrimLeft($strs,$n2)
Wend
Exit(0)

Sp01LeR
30-09-2009, 13:30
Я думаю что для лучшей совместимости форматов вместо _WordCreate($sSourceFile, 0, 0)
лучше открыть документ:

[...]
$sSourceFile = "c:\123.rtf"
$oWord = _WordCreate("")
$oDoc = _WordDocOpen ($oWord, $sSourceFile)
[...]

Frost_Imp
30-09-2009, 15:55
Благодарю, код Stomper-а работает. Очень помогло!
Единственное - можно ли доработать код дляя поиска по нескольким ключевым словам?

Sp01LeR
30-09-2009, 19:30
по нескольким ключевым словам? »

По каким - тем что слева или справа?
Можно поподробней пожалуйста(и желательно с примерами)...

zabidon
03-08-2011, 17:47
столкнулся с похожей проблемой,есть доковский файл с кучей мусора,хочу из него сделать табличку в excel.

подскажите как изменить скрипт Stomper'a, чтобы после заданного ключевого слова данные записывались в столбец таблицы

заранее благодарен




© OSzone.net 2001-2012