Недавние сообщения

Страницы: 1 [2] 3 4 ... 10
11
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 20, 2018, 01:20:22 »
InnI
Спасибо :)
12
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от InnI Отправлен Август 20, 2018, 01:16:24 »
Anna
Попробуйте вызвать _IECreate перед циклом, в цикле используйте _IENavigate, а после цикла _IEQuit.
13
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 20, 2018, 01:12:56 »
InnI
Спасибо.
InnI  [?]
Цитировать
Только в вашем коде она не работает, т.к. _IEQuit уничтожает объект.
А если так
Код: AutoIt [Выделить]
If IsObj($oIE) Then
  _IENavigate($oIE, $oURL)
Else
  $oIE = _IECreate($oURL, 0, 0)
EndIf
$sText = _IEBodyReadText($oIE) ;
;_IEQuit($oIE)

то когда уничтожать?
14
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от InnI Отправлен Август 20, 2018, 01:06:13 »
Anna  [?]
Цитировать
2 слова за один проход
Код: AutoIt [Выделить]
"(?i)\S*(?:" & $sWord & "|" & $sWord_1 & ")\S*"


Цитировать
_IENavigate быстрее
Только в вашем коде она не работает, т.к. _IEQuit уничтожает объект.
15
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 20, 2018, 00:47:39 »
Как искать 2 слова за один проход?



Добавлено: Август 20, 2018, 00:57:55
InnI  [?]
Цитировать
Заодно нам расскажете.
_IENavigate быстрее :)
16
Баг-репорты и запросы на новые функции / Re: Не работает _IniVirtual_Read
« Последний ответ от Vanguger Отправлен Август 19, 2018, 11:34:57 »
По всей видимости дело в регулярке функции __IniVirtual_GetKeysVal

Код: AutoIt [Выделить]
$vData = StringRegExp($vData, '(?m)^([^;].*?)\h*=\h*(["'']?)(.*?)\2\r?$', 3)


Не стал заморачиваться с регуляркой, всё заработало, когда немного изменил строку в функции:

Код: AutoIt [Выделить]
$aData2D[$d][0] = StringStripWS($vData[$i], 1)


В итоге функция обрела следующий вид:
Код: AutoIt [Выделить]
Func ___IniVirtual_GetKeysVal($vData)
    $vData = StringRegExp($vData, '(?m)^([^;].*?)\h*=\h*(["'']?)(.*?)\2\r?$', 3) ; учитывает пробелы между элементами и обрамление кавычками
    Local $d, $u = UBound($vData) ; 0 как индикатор ошибки
    Local $aData2D[$u / 3 + 1][2] = [[$u / 3]]
    For $i = 0 To $u - 1 Step 3
        $d = Int($i / 3) + 1
        $aData2D[$d][0] = StringStripWS($vData[$i], 1)
        $aData2D[$d][1] = $vData[$i + 2]
    Next
    Return $aData2D
EndFunc   ;==>__IniVirtual_GetKeysVal

17
Баг-репорты и запросы на новые функции / Не работает _IniVirtual_Read
« Последний ответ от Vanguger Отправлен Август 19, 2018, 10:24:03 »
Что-то не лады с UDF IniVirtual.au3. В примере, ключ почему-то захватывает перенос строки. Результат следующий:

$sKey       = key2
$aKey[2][0] =
key2
---
$sKey       = 0x6B657932
$aKey[2][0] = 0x0A6B657932
$sKey = $aKey[2][0] ? False

Код: AutoIt [Выделить]
#include <IniVirtual.au3>
$sPath = @ScriptDir & '\tmp.ini'
IniWrite ($sPath, "Section", "key1", "111" )
IniWrite ($sPath, "Section", "key2", "222" )
$s_ini_Text = FileRead($sPath)
$aInitVirtual = _IniVirtual_Initial($s_ini_Text)
$sRes = __IniVirtual_Read($aInitVirtual, 'Section', 'key2', 'Default')


Функция в UDF(с тестовыми строками)
Код: AutoIt [Выделить]
Func _IniVirtual_Read($a_Ini_Virtual2D, $sSection, $sKey, $sDefault = '')
    Local $i = _ArraySearch($a_Ini_Virtual2D, $sSection, 1, 0, 0, 2, 1, 0)
    If @error Then Return $sDefault
    Local $aKey = $a_Ini_Virtual2D[$i][1]
;
ConsoleWrite('$sKey       = ' & $sKey & @CRLF)
ConsoleWrite('$aKey[2][0] = ' & $aKey[2][0] & @CRLF)
ConsoleWrite('---' & @CRLF)
ConsoleWrite('$sKey       = ' & StringToBinary($sKey) & @CRLF)
ConsoleWrite('$aKey[2][0] = ' & StringToBinary($aKey[2][0]) & @CRLF)
ConsoleWrite('$sKey = $aKey[2][0] ? ')
ConsoleWrite($sKey = $aKey[2][0])
ConsoleWrite(@CRLF&@CRLF)
;
    $i = _ArraySearch($aKey, $sKey, 1, 0, 0, 2, 1, 0)
    If @error Then Return $sDefault
    Return $aKey[$i][1]
EndFunc   ;==>_IniVirtual_Read

18
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 19, 2018, 00:32:01 »
InnI, если все мои идеи и предположения проверять на практике, жизни не хватит :)  Теоретически, перейти по ссылке быстрее, чем создавать объект, но теория зачастую не совпадает с тем что выходит на практике. Вы то уж точно знаете как оно всё там, внутри Windows, работает и что быстрее сделает ;)
19
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от InnI Отправлен Август 18, 2018, 23:23:14 »
Anna  [?]
Цитировать
Не будет быстрее если уже выполнили _IECreate, то сделать _IEnavigte?
Зачем спрашивать? Попробуйте и узнаете. Заодно нам расскажете.
20
Общие вопросы по AutoIt / Re: Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 18, 2018, 22:59:12 »
InnI, спасибо :), а то что на каждом проходе _IECreate потом _IEQuit замедляет? Не будет быстрее если уже выполнили _IECreate, то сделать _IEnavigte?
Страницы: 1 [2] 3 4 ... 10