Автор Тема: Поиск нужных строк, в многострочном тексте  (Прочитано 5010 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257
  • Репутация: 6
    • Награды
Ребят, подскажите как в данном тексте найти нужные строки?
<table class="table_menu" border="0">
<tr><td><input name=form[16357286] type="checkbox"></td><td>[<a href="itemlink.php?id=16357286&sel=4&str=1"><span style="color:#FF00FF">i</span></a>] <span style="color:#00FFFF"><strong>Большая аптечка лекаря</strong></span></td></tr>

<tr><td valign="top" width="51"><img src="../images/aid3.jpg" width="50" border="1" style="border-color:#000000"></td><td><img src="img/money.gif" /> <span class="white"><strong>1400</strong></span><br /><strong><span style="color:#AA0000">Требования:</span></strong><br>Лекарь: <strong>60</strong><br /><strong><span style="color:#00AABB">Свойства:</span></strong><br>Емкость: <strong>1000</strong><br /><a href="torazdel.php?id=16357286&sel=4"><span style="color:#0099FF"><strong>Разделить емкость</strong></span></a><br /></span></td></tr>

<tr><td align="left" colspan="2"><a class="btninv" href="lechit.php?ID=16357286">Использовать</a></td></tr>           
</table></td></tr>
почему-то такой запрос не помогает(
Код: AutoIt [Выделить]
$test=StringRegExp($text, '(?i)aid\d.jpg.+Емкость.*?>(\d+)<*?href=\"lechit.php?ID=(\d+)', 3)


Русское сообщество AutoIt

Поиск нужных строк, в многострочном тексте
« Отправлен: Июнь 01, 2013, 09:49:18 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2754
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Trans
а что найти то надо? картинки, цифры ..что?
можно пока глянуть тему http://autoit-script.ru/index.php/topic,11949.msg77789.html#msg77789
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257

  • Автор темы
  • Репутация: 6
    • Награды
joiner, надо найти такие строки как
Строку
Емкость: <strong>1000</strong>
и ссылку
<a class="btninv" href="lechit.php?ID=16357286">
При этом, чтоб это была одна переменная
вот полная страница
(нажмите для показа/скрытия)

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Trans,
Если я правильно Вас понял, то попробуйте примерно так.
Код: AutoIt [Выделить]
#include <Array.au3>

Local $aSearch[1], $iUb, $sTxt, $aTmp

$sTxt = FileRead(@ScriptDir & '\txt.html')

$aTmp = StringRegExp($sTxt, '(?is)Емкость.*?<strong>(\d+?)<.+?href="(.+?)">', 3)
$iUb = UBound($aTmp)
If Not $iUb Or Mod($iUb, 2) Then Exit 13
$sTxt = ''
ReDim $aSearch[$iUb / 2 + 1][2]
For $i = 0 To $iUb - 2 Step 2
    $aSearch[0][0] += 1
    For $j = 0 To 1
        $aSearch[$aSearch[0][0]][$j] = $aTmp[$i + $j]
    Next
Next
$aTmp = 0
_ArrayDisplay($aSearch)

« Последнее редактирование: Июнь 03, 2013, 12:31:25 от madmasles »

Русское сообщество AutoIt

Re: Поиск нужных строк, в многострочном тексте
« Ответ #3 Отправлен: Июнь 01, 2013, 11:13:02 »

Оффлайн ivsatel [?]

  • Продвинутый
  • ***
  • Сообщений: 319
  • Репутация: 84
  • Пол: Мужской
    • Награды
Можно так:
Код: AutoIt [Выделить]
$sText = FileRead(@ScriptDir & '\textprst.txt')
$sPattern1 = '(Емкость.*?>\d+\<.*?>)'
$aRez1 = StringRegExp($sText, $sPattern1, '1')
$sPattern2 = '(\<a.*?href\="lechit.*?\d+">)'
$aRez2 = StringRegExp($sText, $sPattern2, '1')
$sItog = $aRez1[0]&$aRez2[0]
ConsoleWrite($sItog&@LF)
 


Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257

  • Автор темы
  • Репутация: 6
    • Награды
madmasles
при использовании функции
Код: AutoIt [Выделить]
$sTxt = FileRead(@ScriptDir & '\txt.html')

работает всё нормально, но вот когда используется
Код: AutoIt [Выделить]
$sTxt = _IEBodyReadHTML($oIE)

выдаёт ошибку !>00:26:07 AutoIT3.exe ended.rc:13исключительно при использовании
Код: AutoIt [Выделить]
$oIE = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oIE, 1, 1, 268, 378)



Добавлено: Июнь 02, 2013, 00:36:26
т.е. получается, что он не находит нужные строки...

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Trans,
Дайте тогда этот код страницы:
Код: AutoIt [Выделить]
$oIE = ObjCreate("Shell.Explorer.2")
$sTxt = _IEBodyReadHTML($oIE)

« Последнее редактирование: Июнь 02, 2013, 05:45:04 от madmasles »

Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257

  • Автор темы
  • Репутация: 6
    • Награды
madmasles, таже страница, тот же код страницы, что и выше...
Код: AutoIt [Выделить]
_IENavigate($oIE, @ScriptDir&'\text.html')


Русское сообщество AutoIt

Re: Поиск нужных строк, в многострочном тексте
« Ответ #7 Отправлен: Июнь 02, 2013, 09:45:42 »

Оффлайн ivsatel [?]

  • Продвинутый
  • ***
  • Сообщений: 319
  • Репутация: 84
  • Пол: Мужской
    • Награды
Trans

В ответе №5 у вас txt.html, а в ответе №7 text.html
Может по этому ошибка
!>19:44:08 AutoIt3.exe ended.rc:13

Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257

  • Автор темы
  • Репутация: 6
    • Награды
Странно, но код страницы визуально вроде бы изменён, после такой манипуляции...
Код: AutoIt [Выделить]
$sTxt = _IEBodyReadHTML($oIE)
$File=FileOpen(@TempDir&'\temp.txt',9)
FileWrite($File,$sTxt)
FileClose($File)
$sTxt =FileRead($file)



Добавлено: Июнь 02, 2013, 23:30:26
http://pastebin.ru/Vkpehpvk
« Последнее редактирование: Июнь 02, 2013, 23:30:27 от Trans, Причина: Объединение сообщений »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Trans,
Я поменял свой код (добавил '(?is)Емкость.*?<strong>(\d+?)<.+?href="(.+?)">').

Оффлайн Trans [?]

  • Новичок
  • *
  • Сообщений: 257

  • Автор темы
  • Репутация: 6
    • Награды
madmasles, Спасибо) всё заработало)

Русское сообщество AutoIt

Re: Поиск нужных строк, в многострочном тексте
« Ответ #11 Отправлен: Июнь 03, 2013, 16:05:28 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
1368 Просмотров
Последний ответ Июль 28, 2012, 00:13:50
от madmasles
1 Ответов
2144 Просмотров
Последний ответ Апрель 09, 2013, 20:11:44
от madmasles
5 Ответов
2612 Просмотров
Последний ответ Май 31, 2013, 18:23:19
от InnI
8 Ответов
2394 Просмотров
Последний ответ Январь 22, 2014, 06:59:20
от Talany
3 Ответов
2914 Просмотров
Последний ответ Июнь 17, 2014, 13:22:42
от Продвинутый карибас
13 Ответов
4169 Просмотров
Последний ответ Март 21, 2015, 19:45:11
от Garrett
10 Ответов
2091 Просмотров
Последний ответ Июль 24, 2015, 18:22:25
от Yashied
6 Ответов
1980 Просмотров
Последний ответ Август 23, 2016, 21:50:54
от ra4o
1 Ответов
251 Просмотров
Последний ответ Февраль 07, 2018, 19:34:09
от ra4o
1 Ответов
345 Просмотров
Последний ответ Июль 11, 2018, 18:20:59
от InnI