Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2012, 19:01   #1
hziben
 
Регистрация: 05.06.2012
Сообщений: 7
По умолчанию Парсинг значений между тегами

Помогите, полдня уже бьюсь голова болит. Изначально думал использовать автоит, но решил не разрываться. Делфи не знаю.
Есть папка с .htm файлами. Правильно ли я понимаю, сначала надо получить список с именами файлов в этой папке. Дальше надо проделать так:
Открыть "путь к файлу1"
Копировать значение содержащееся между
PHP код:
<meta property="og:title" content=
и
PHP код:
" /> 
Вставить в ячейку А2
Копировать значение содержащееся между
PHP код:
<strong class="price"
и
PHP код:
 </strong
Вставить в ячейку В2
Закрыть документ

Открыть "путь к файлу2"
Аналогично, но вставлять уже в ячейки на строку ниже
Закрыть
Завершить макрос



------- примечание модератора ------------


посмотрите функцию получения значения из тегов
http://excelvba.ru/code/html
есть также готовое решение для поиска цен по ссылкам
http://excelvba.ru/programmes/Parser.../ComparePrices

Последний раз редактировалось EducatedFool; 04.11.2016 в 07:36.
hziben вне форума Ответить с цитированием
Старый 29.08.2012, 23:05   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Функция возвращает оба значения.
Читаете файл и через функцию его
Код:
Public Function Get_data(ByVal s)
Dim X(1)
        Dim n As Integer, m As Integer, Sl As String
            bRes = False
        Set RegExp = CreateObject("VBScript.RegExp")
        RegExp.Global = False
        RegExp.IgnoreCase = True
        RegExp.Pattern = "(<strong class=""price"">(.+?)</strong>)"
        bRes = RegExp.test(s)
        If bRes Then
                Set oMatches = RegExp.Execute(s)
              X(0) = oMatches(0).SubMatches(1)
        End If
             RegExp.Pattern = "(<meta property=""og:title"" content=""(.+?)"" />)"
      bRes = RegExp.test(s)
        If bRes Then
                Set oMatches = RegExp.Execute(s)
              X(1) = oMatches(0).SubMatches(1)
        End If
   Get_data = X
End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
preg_match, поиск текста между тегами Dexes PHP 3 07.01.2012 20:34
Как выделить текст между тегами SeRhy PHP 1 04.01.2012 15:12
макрос вставка текста между тегами <div> </div> nur91m Microsoft Office Word 2 19.10.2011 22:16
Загрузка html-страницы между определёнными тегами medved6216 Помощь студентам 13 13.11.2009 14:21
Копирование строки между тегами KiDoki Общие вопросы Delphi 7 30.12.2008 16:33