$var = IniRead(@ScriptDir & "\update.dat", "AutoIt", "version", "NotFound")
MsgBox(4096, "Result", $var)
#include <file.au3>
Dim $aArray
_FileReadToArray(@ScriptDir & "\update.dat", $aArray)
For $i = 1 To UBound($aArray) - 1
If StringInStr($aArray[$i], "version") > 0 Then
$var = StringRegExpReplace($aArray[$i], "[^.0-9]", "\1")
MsgBox(4096, "Result", $var)
EndIf
Next
Не имеет разницы какой документ, если этот файл имеет структуру ini-файла, то Ini* функций для этого вполне подходят.а если html документ?
в том то и проблема, ето обычный html код, конкретноНе имеет разницы какой документ, если этот файл имеет структуру ini-файла, то Ini* функций для этого вполне подходят.
то приведите пример куска кода....ето обычный html код...
у меня Ваш вариант не работаетЯ в свой ответ добавил еще вариант
<a href="memberlist.php?admin">Подробнее</a>-->то приведите пример куска кода.
$sString = ClipGet() ;тут строка html кода
$sResult = StringRegExpReplace($sString, '(?s).*<td class="row1">Работаем с: ((?-s).*?)[\r\n]+.*', '\1')
ConsoleWrite($sResult & @CRLF)
Поиск по форуму поможетFever сказал(а):а если html документ??? :wacko:
CreatoR сказал(а):Код:$sString = ClipGet() ;тут строка html кода $sResult = StringRegExpReplace($sString, '(?s).*<td class="row1">Работаем с: ((?-s).*?)[\r\n]+.*', '\1') ConsoleWrite($sResult & @CRLF)
#include "IE.au3"
Dim $descript
$file = "D:\_WorkBase\Culinary2010\0\test.html"
$oIE = _IECreate($file, 1)
$str1 = _IEDocReadHTML($oIE)
$descript = StringRegExpReplace($str1, '(?s).*<(?i)span class="spec-value">((?-s).*?)</(?i)span>.*', '\1' )
MsgBox(0, "тест", $descript )
<div style="width: 88%">
<h1 class="spec-name">
Stock Photo:
<span class="spec-value">Flax seed full screen</span>
</h1>
</div>
</center>
; НАЧАЛО
$ADDR="D:\_WorkBase\Culinary2010\0\test.html"
$FILE=FileOpen($ADDR,0)
$TEXT=FileRead($FILE)
FileClose($FILE)
$descript = StringRegExpReplace($TEXT, '(?s).*<(?i)span class="spec-value">((?-s).*?)</(?i)span>.*', '\1' )
MsgBox(0, "тест", $descript )
; КОНЕЦ
snoitaleR сказал(а):Само регулярное выражение срабатывает...
Наверное, не срабатывает конструкция IE для локальных файлов...
#include "IE.au3"
Dim $descript
$file = "D:\_WorkBase\Culinary2010\0\test.html"
$oIE = _IECreate($file)
$oInputs = _IETagNameGetCollection ($oIE, "span")
;~ ConsoleWrite(@extended)
For $oInput In $oInputs
If $oInput.className = "spec-value" Then
MsgBox(0, '<span class="' & $oInput.className & '">' & $oInput.innerText & '</span>', 'Текст: ' & $oInput.innerText )
EndIf
Next
#include "IE.au3"
Dim $descript
$file = "http://www.shutterstock.com/pic-1097173.html"
$oIE = _IECreate($file)
$oInputs = _IETagNameGetCollection ($oIE, "span")
;~ ConsoleWrite(@extended)
For $oInput In $oInputs
If $oInput.className <> "0" Then
If ($oInput.className = "spec-value" And $oInput.innerText = "Flax seed full screen") Then
MsgBox(0, '<span class="' & $oInput.className & '">' & $oInput.innerText & '</span>', 'Текст: ' & $oInput.innerText )
EndIf
EndIf
Next
Garrett сказал(а):Ваша задача описывается достаточно просто:
Дано: _http://www.shutterstock.com/pic-1097173.html
Требуется: вытащит текст ‘Flax seed full screen’
Это позволит быстрее понять вас и помочь вам!
так как <span class="spec-value"> для этого html уникально (встречается один раз).
class="spec-value"
;...
And $oInput.innerText = "Flax seed full screen"
;...
Garrett сказал(а):Попробуйте второй вариант убрав вот это в If:
Этот код ищет в Html документе все span теги и проверяет наличие атрибута class="spec-value". Так как такое сочетание тега встречается единожды, то мы вытаскиваем его текст.Так работает, спасибо, сейчас буду разбираться с этим кодом, пытаться понять его
Сорри, что-то никак у меня не получается использовать аналог этого регулярного выражения:
GealutНаверное, не срабатывает конструкция IE для локальных файлов...
$str1 = _IEDocReadHTML($oIE)
MsgBox(0,'$str1',$str1,1)
$descript = StringRegExpReplace ............