Здравствуйте.
Данный код должен выполнять довольно простую задачу - если встречает в строке из файла слова "рейт","$" или "нужно" он вырезает id в файл buf.txt
[ник-zad657767]:нужно подождать 26 часов 24 минуты 25 секунд -> 657767.
И потом если подстрока из buf.txt встречается в forcezad.txt - копирует строку из forcezad.txt в newforcezad.txt
Но почему-то проходит только одна итерация второго цикла,при повторной вычитке из файла FileReadLine возвращает @error.
Как эту проблему решить можно,файл-то целый и дальше есть строки?
Файлы для примера: http://yadi.sk/d/SQmdaS7P8cicw
Данный код должен выполнять довольно простую задачу - если встречает в строке из файла слова "рейт","$" или "нужно" он вырезает id в файл buf.txt
[ник-zad657767]:нужно подождать 26 часов 24 минуты 25 секунд -> 657767.
И потом если подстрока из buf.txt встречается в forcezad.txt - копирует строку из forcezad.txt в newforcezad.txt
Но почему-то проходит только одна итерация второго цикла,при повторной вычитке из файла FileReadLine возвращает @error.
Как эту проблему решить можно,файл-то целый и дальше есть строки?
Файлы для примера: http://yadi.sk/d/SQmdaS7P8cicw
Код:
$hmylog = FileOpen(@ScriptDir & '\mylog.txt', 0)
$hBuf = FileOpen(@ScriptDir & '\buf.txt', 2)
While 1
$sLine = FileReadLine($hmylog)
If @error = -1 Then ExitLoop
if StringInStr($sLine,"$") OR StringInStr($sLine,"рейт") OR StringInStr($sLine,"нужно") Then
$res_array=StringRegExp($sLine, 'zad([0-9A-z]{1,})]', 3)
FileWriteLine($hBuf, $res_array[0] & @CRLF)
EndIf
WEnd
$hBuf = FileOpen(@ScriptDir & '\buf.txt', 0)
$hForcezad = FileOpen(@ScriptDir & '\forcezad.txt', 0)
$hnewforcezad = FileOpen(@ScriptDir & '\newforcezad.txt', 2)
While 1
$sLine = FileReadLine($hBuf)
If @error = -1 Then ExitLoop
While 1
$sLinezad = FileReadLine($hForcezad)
If @error = -1 Then ExitLoop ;вот тут ложится
if StringInStr($sLineZad,$sLine) Then
FileWriteLine($hnewforcezad, $sLinezad & @CRLF)
EndIf
WEnd
WEnd