Что нового

Два скрипта по отдельности работают прекрасно, а вместе-выдают ошибку

darow

Новичок
Сообщения
50
Репутация
1
Всем здравствуйте, есть два скрипта:
Код:
Global $filename = "C:\Users\Арсений\Desktop\betcityru\signals.txt"

Local $time1, $time2
$time1 = FileGetTime($filename, 0, 1)
While 1
    $time2 = FileGetTime($filename, 0, 1)
    If $time1 <> $time2 Then
        $time1 = $time2
        _action1()
    EndIf
    Sleep(1000)
WEnd

Func _action1()
    MsgBox(0,0,'Есть сигнал!', 5)
EndFunc

это скрипт ожидания изменения даты изменения файла и просто выдает диалог
второй скрипт начинает основную автоматизацию:
Код:
#include <IE.au3>
Global $sLogin = "g 5627140"
Global $sPassword = "340572"

_IELoadWaitTimeout(10000)
Do
$oIE = _IECreate("http://betsbc.com/")
If @error Then ExitLoop

$oFrame1 = _IEFrameGetCollection($oIE, 0)
If @error Then ExitLoop

For $c = 1 To 5
$oForm = _IETagNameGetCollection($oFrame1, "form", 0)
If @error = 0 Then ExitLoop
Sleep(1000)
Next

$oLogin = _IEGetObjByName($oForm, "login")
_IEFormElementSetValue($oLogin, $sLogin)
If @error Then ExitLoop

$oPassword = _IEGetObjByName($oForm, "pwd")
_IEFormElementSetValue($oPassword, $sPassword)
If @error Then ExitLoop

_IEFormSubmit($oForm, 0)
;If @error Then ExitLoop
Until 1

Sleep(2000)

Global $filename = "C:\Users\Арсений\Desktop\betcityru\signals.txt"
$hFile = FileOpen($filename, 0)
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть данный файл")
    Exit
EndIf
_IENavigate($oIE, "http://betsbc.com/live/line.php")

$sLine = FileReadLine($hFile, -1)
If @error = -1 Then
    MsgBox(4096, "Ошибка", "Не вышло прочитать данные")
    Exit
EndIf
Sleep(2000)

FileClose($hFile)

$sMyString=StringRegExpReplace($sLine, ".*?В матче среди: (.*?) .*", "\1", 0)
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
Next

Sleep(2000)

$oLinks = _IETagNameGetCollection($oIE, "a")
If IsObj($oLinks) Then
    For $oLink In $oLinks
        If StringRegExp($oLink.href,'http://betsbc\.com/left\.php\?livebet=\d+\.357') Or StringInStr($oLink.getAttribute('onclick'), 'return al();') Then
            ConsoleWrite("href: "&$oLink.href&@CRLF)
            _IEAction($oLink, "click")
            ExitLoop
        EndIf
    Next
EndIf


оба по отдельности работают четко без проблем
теперь решил автоматизацию вставить в скрипт отработки сигнала, что бы как будет сигнал он начал работать:
Код:
Global $filename = "C:\Users\Арсений\Desktop\betcityru\signals.txt"

Local $time1, $time2
$time1 = FileGetTime($filename, 0, 1)
While 1
    $time2 = FileGetTime($filename, 0, 1)
    If $time1 <> $time2 Then
        $time1 = $time2
        _action1()
    EndIf
    Sleep(1000)
WEnd

Func _action1()
    #include <IE.au3>
Global $sLogin = "g 5627140"
Global $sPassword = "340572"

_IELoadWaitTimeout(10000)
Do
$oIE = _IECreate("http://betsbc.com/")
If @error Then ExitLoop

$oFrame1 = _IEFrameGetCollection($oIE, 0)
If @error Then ExitLoop

For $c = 1 To 5
$oForm = _IETagNameGetCollection($oFrame1, "form", 0)
If @error = 0 Then ExitLoop
Sleep(1000)
Next

$oLogin = _IEGetObjByName($oForm, "login")
_IEFormElementSetValue($oLogin, $sLogin)
If @error Then ExitLoop

$oPassword = _IEGetObjByName($oForm, "pwd")
_IEFormElementSetValue($oPassword, $sPassword)
If @error Then ExitLoop

_IEFormSubmit($oForm, 0)
;If @error Then ExitLoop
Until 1

Sleep(2000)

Global $filename = "C:\Users\Арсений\Desktop\betcityru\signals.txt"
$hFile = FileOpen($filename, 0)
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть данный файл")
    Exit
EndIf
_IENavigate($oIE, "http://betsbc.com/live/line.php")

$sLine = FileReadLine($hFile, -1)
If @error = -1 Then
    MsgBox(4096, "Ошибка", "Не вышло прочитать данные")
    Exit
EndIf
Sleep(2000)

FileClose($hFile)

$sMyString=StringRegExpReplace($sLine, ".*?В матче среди: (.*?) .*", "\1", 0)
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
Next

Sleep(2000)

$oLinks = _IETagNameGetCollection($oIE, "a")
If IsObj($oLinks) Then
    For $oLink In $oLinks
        If StringRegExp($oLink.href,'http://betsbc\.com/left\.php\?livebet=\d+\.314') Or StringInStr($oLink.getAttribute('onclick'), 'return al();') Then
            ConsoleWrite("href: "&$oLink.href&@CRLF)
            _IEAction($oLink, "click")
            ExitLoop
        EndIf
    Next
EndIf
EndFunc


и получаю такую ошибку на скрине. Что же не так с синтаксисом?
 

Вложения

  • 33333333.jpg
    33333333.jpg
    54.5 КБ · Просмотры: 7

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Func _action1()
#include <IE.au3>

вот тут, нельзя вставлять #INCLUDE в функции или в блоки if они должны вставляться желательно в самый верх скрипта и по одному разу.
 
Автор
D

darow

Новичок
Сообщения
50
Репутация
1
Спасибо за подсказку, поставил в самый вверх и все завелось с пол оборота!
Как всегда от вас самые точные советы.


Добавлено:
Сообщение автоматически объединено:

Мой вопрос решился ооочень быстро, всем спасибо!
 
Верх