Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Duff89 on November 14, 2017, 08:53:51 PM

Title: команда STRREADLN не срабатывает примерно каждый пятый раз
Post by: Duff89 on November 14, 2017, 08:53:51 PM
Вот кусок моего кода
Code: [Select]
$maila=STRREADLN("mail.txt",RND(1,TFCOUNT("mail.txt")))//присваиваем переменной случайную строку из файла
WAITMS(300)
KEYSTRING($maila,80)//печатаем строку
 WAITMS(300)
 TFWRITE("log_pass.txt", $maila)//пишем в лог
Смысл в том, что этот код не срабатывает примерно каждый пятый раз и это дико напрягает. Файл mail.txt содержит строки такого типа
mail3.ru
gmail3.ru
mail2.com
gmail4.com
malna2.ru
malina4.com и т.д.
В чем может быть причина ума не приложу, притом в программе используется много аналогичных кусков, но не работает именно этот. Такое чувство, что иногда кликер просто пропускает этот код. Версия кликера 4.12

Title: Re: команда STRREADLN не срабатывает примерно каждый пятый раз
Post by: Duff89 on November 15, 2017, 01:53:56 AM
Была и у меня такая мысль,но все символы это A-Z,1-9 и . (точка). Т.е никаких кавычек, собак и прочего с чем у Clickermann могут быть проблемы.
Title: Re: команда STRREADLN не срабатывает примерно каждый пятый раз
Post by: Vint on November 15, 2017, 09:59:24 AM
Думаю нужно попробовать вынести TFCOUNT("mail.txt") в отдельную строку, не нужно каждый раз заново определять размер.
После каждого доступа к файлу он блокируется на малое время. Даже тупой STRREADLN в цикле без задержек начинает пропускать примерно каждую трёхсотую строку.

TFCOUNT нужно прочитать все строки чтобы посчитать их. Поэтому STRREADLN в той же конструкции сразу может не всегда срабатывать из-за ещё не снятой виндой блокировки.
Тем более необходимости каждый раз считать нет, мы в этот файл не пишем. Вынеси TFCOUNT("mail.txt") за цикл
Code: (clickermann) [Select]
$count = TFCOUNT("mail.txt")
WAITMS(50)
...
//чтение в цикле
$maila = STRREADLN("mail.txt", RND(1, $count))  //присваиваем переменной случайную строку из файла
WAITMS(50)
KEYSTRING($maila, 80)//печатаем строку

!!! Это предположение
Title: Re: команда STRREADLN не срабатывает примерно каждый пятый раз
Post by: Duff89 on November 15, 2017, 12:10:20 PM
В общем ситуация разрешилась довольно простым способом) В голову пришла мысль посмотреть сколько строк в файле txt и сколько видит кликер. Оказалось в файле 12 строк, а программа видит как 14,хотя визуально их 12. Скорее всего я нажал 2 раза enter после последней строки, правда не пойму зачем) Поэтому решил проблему просто удалив пустые строки в конце текстового документа, можно также проверять предварительно длину строки, но сейчас это уже лишнее.
Спасибо за советы!