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

Основной раздел => Общие вопросы => Topic started by: SimplY on January 12, 2022, 03:36:38 PM

Title: Найти нужную строку в текстовом файле
Post by: SimplY on January 12, 2022, 03:36:38 PM
Уважаемые форумчане!

Перерыл многое, и форум и справку, но не могу найти:(

Буду благодарен за код или ссылку, где это обсуждалось.
Title: Re: Найти нужную строку в текстовом файле
Post by: dramster on January 12, 2022, 09:06:27 PM
Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt
Title: Re: Найти нужную строку в текстовом файле
Post by: SimplY on January 13, 2022, 02:33:54 AM
Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt

Спасибо))
Title: Re: Найти нужную строку в текстовом файле
Post by: Иван_Васильевич on January 13, 2022, 03:57:10 PM

Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Title: Re: Найти нужную строку в текстовом файле
Post by: SimplY on January 15, 2022, 04:58:59 PM

Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Сарказм? Надоел тут всем?
Title: Re: Найти нужную строку в текстовом файле
Post by: Иван_Васильевич on January 20, 2022, 02:12:41 PM

Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC


IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Сарказм? Надоел тут всем?
Л-логика
 когда перестанут отвечать на твои сообщения, то считай уже надоел.
 А слово Сарказм здесь ругательное, в виду низкого, среднего культурного уровня зарегистрированных пользователей
 форума, попрошу его не употреблять, ведь реально могут новую травлю начать всего из-за одного неосторожного или непонятного слова. Успехов вам в освоении программы.
Title: Re: Найти нужную строку в текстовом файле
Post by: Oblie1968 on February 21, 2022, 02:51:47 PM
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

Данный код я бы чуть по другому сделал.

Code: (clickermann) [Select]
$ncount=TFCOUNT("file.txt")
$seek=0
FOR($n=1, $n <= $ncount and $seek==0) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      $seek=$n
   END_IF   
END_CYC
 
IF($seek)
  print("Нашли в строке ", $seek)    //если есть
ELSE
  print("не нашли")                //если ее нет
END_IF
 
halt
Title: Re: Найти нужную строку в текстовом файле
Post by: dramster on February 21, 2022, 05:07:00 PM
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

Что-то мне подсказывает, что  нынче пропал интерес у людей что-то ломать, читить,... . И скорее всего это правильно. А кликерман был создан именно в то время, когда это было востребовано. Другое дело, это автоматизация работы на пк , но тут аудитории уже намного меньше.
Еще пару лет назад тут было куча интересных задач и реализаций этих задач на кликере. Сейчас же всем пофиг, максимум, как кликнуть и как остановить...  :-[ .
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.
Title: Re: Найти нужную строку в текстовом файле
Post by: Oblie1968 on February 22, 2022, 01:06:54 AM
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.
Мне кажется, такие задачи не для кликера, он же однозначно будет их исполнять долго.

Я бы лучше пообсуждал чисто кликермановскую специфику. Вот кликерман совершенно не работает, например, с текстом, а я в хвост и в гриву его юзаю. Пиксели найти, про картинки я вообще молчу, долго и не надёжно, а текст - милое дело. Не всегда, конечно, Ctrl+A Ctrl+C доступно, в играх текст не увидишь, но что касается сайтов - первейшее дело, анализируешь сразу весь текст, не только тот, который виден на экране.
Title: Re: Найти нужную строку в текстовом файле
Post by: Vint on February 22, 2022, 09:36:26 AM
Мне кажется, такие задачи не для кликера, он же однозначно будет их исполнять долго.
Это и так понятно было, но интересно.

Я бы лучше пообсуждал чисто кликермановскую специфику. Вот кликерман совершенно не работает, например, с текстом, а я в хвост и в гриву его юзаю. Пиксели найти, про картинки я вообще молчу, долго и не надёжно, а текст - милое дело.
Кликер нормально работает с текстом. Ну, достаточно нормально  :) В основном с одиночными строками, с многострочными сложнее, особенно в старых версиях.
И почему это про картинки нужно молчать? Это как раз один из основных функционалов. Работает он с ними прекрасно, возможности хорошие. Нужно научиться ими пользоваться и большинство задач может быть решено.
Основной смысл кликера - работа с графическим отображнением, где прямого доступа к тексту или коду нет, или этот доступ не сулит ничего хорошего. Не единственная, но основная. В этом он похож на действия человека при работе с приложениями. И в этом же заключается большинство бед.

Я бы лучше пообсуждал чисто кликермановскую специфику. Не всегда, конечно, Ctrl+A Ctrl+C доступно, в играх текст не увидишь, но что касается сайтов - первейшее дело, анализируешь сразу весь текст, не только тот, который виден на экране.
А вот это как раз не кликеровская специфика - работать с текстом сайта, для этого почти нет функционала. Если нужно работать с запросами или с кодом сайта лучше выбрать более подходящий инструмент, python тот же.
Title: Re: Найти нужную строку в текстовом файле
Post by: Oblie1968 on March 02, 2022, 08:08:03 PM
Кликер нормально работает с текстом. Ну, достаточно нормально  :) В основном с одиночными строками, с многострочными сложнее, особенно в старых версиях.
И почему это про картинки нужно молчать? Это как раз один из основных функционалов. Работает он с ними прекрасно, возможности хорошие. Нужно научиться ими пользоваться и большинство задач может быть решено.
Основной смысл кликера - работа с графическим отображнением, где прямого доступа к тексту или коду нет, или этот доступ не сулит ничего хорошего. Не единственная, но основная. В этом он похож на действия человека при работе с приложениями. И в этом же заключается большинство бед.
А я считаю, что кликерман очень плохо работает с текстом. Про проблему отдельных символов я уже говорил, у меня масса случаев, когда он не находит текст, который есть; из буфера обмена текст берётся не всегда корректно; при сравнении строк, в которых есть служебные символы, те же CR/LF элементарные, вообще вылетает с ошибкой. Но так или иначе все эти трудности обходятся. Главное достоинство кликермана, по моему мнению, в том, что он может работать одновременно с различными приложениями, от офиса и графических редакторов, до сайтов и игрушек, и именно без влезания в суть того, что там у этих приложений внутри происходит. Программы "на коленке" пишутся быстро и получаются необычайно эффективные.

Новую версию ещё не пробовал. Скажите, в новой версии хоть какие-то файловые функции реализованы? То же переименование файла или каталога, копирование приходится выполнять внешними командными файлами.
Title: Re: Найти нужную строку в текстовом файле
Post by: Vint on March 05, 2022, 05:32:03 PM
Новую версию ещё не пробовал. Скажите, в новой версии хоть какие-то файловые функции реализованы? То же переименование файла или каталога, копирование приходится выполнять внешними командными файлами.
Все новые функции перечислены в справке, в разделе "История развития".
Для использования команд cmd, необязательно создавать файлы, можно передавать их аргументами.
Title: Re: Найти нужную строку в текстовом файле
Post by: Hito on March 12, 2022, 01:41:26 PM
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

Что-то мне подсказывает, что  нынче пропал интерес у людей что-то ломать, читить,... . И скорее всего это правильно. А кликерман был создан именно в то время, когда это было востребовано. Другое дело, это автоматизация работы на пк , но тут аудитории уже намного меньше.
Еще пару лет назад тут было куча интересных задач и реализаций этих задач на кликере. Сейчас же всем пофиг, максимум, как кликнуть и как остановить...  :-[ .
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.
Просто во многих играх стали устанавливать защиту от автокликов, от которой уже и ps/2 не избавляет. Вот и пользоваться стали меньше ))
Title: Re: Найти нужную строку в текстовом файле
Post by: Hito on March 12, 2022, 02:24:43 PM
Code: (clickermann) [Select]
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF   
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
  print("не нашли")
END_IF

halt

На каждый - TFREAD("file.txt", $n), Clickermann открывает и закрывает текстовый файл, на что, как я полагаю, тратится время. В виду логики думаю, что целесообразней было бы открыть файл 1 раз, забрать строки в массыв и потом уже работать с этим массивом.

Code: (clickermann) [Select]
$t = $_ms
FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
      print("Нашли в строке ", $n)    //если есть
      $n = TFCOUNT("file.txt")+1 //стоп цикл
   END_IF
END_CYC

IF($n < TFCOUNT("file.txt")+2) //если ее нет
   print("не нашли")
END_IF
LOGWRITE ("время поиска = ",$_ms-$t)




$t = $_ms
TFREADARR ("file.txt", $arr)
$st_num = 0
FOR($i=0,$i<ARRSIZE($arr)+1)
   IF($arr[$i] = "Искомая строка")
      $st_num = $i+1
      $i=ARRSIZE($arr)
   END_IF
END_CYC
UNDEFINE ($arr)

IF($st_num > 0)
   LOGWRITE ("Строка найдена на позиции ",$st_num)
else
   LOGWRITE ("Строка не найдена")
END_IF
LOGWRITE ("время поиска = ",$_ms-$t)

HALT

(https://sun9-45.userapi.com/impg/JhYiTFOnXDGGiw629zYengr-1QLATYCt8xzEZg/aVi5dwKj5sY.jpg?size=295x242&quality=95&sign=b0dece7aa8fd3edd30ca199f1bfc512d&type=album)