Автор Тема: Найти нужную строку в текстовом файле  (Прочитано 975 раз)

0 Пользователей и 1 Гость просматривают эту тему.

SimplY

  • Освоившийся
  • **
  • Сообщений: 88
    • Просмотр профиля
Уважаемые форумчане!

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

Буду благодарен за код или ссылку, где это обсуждалось.

dramster

  • Герой форума
  • *****
  • Сообщений: 1130
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #1 : Январь 12, 2022, 09:06:27 pm »
Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  9.  print("не нашли")
  10. END_IF
  11.  
  12. halt

SimplY

  • Освоившийся
  • **
  • Сообщений: 88
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #2 : Январь 13, 2022, 02:33:54 am »
Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  9.  print("не нашли")
  10. END_IF
  11.  
  12. halt

Спасибо))

Иван_Васильевич

  • Освоившийся
  • **
  • Сообщений: 26
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #3 : Январь 13, 2022, 03:57:10 pm »

Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  9.  print("не нашли")
  10. END_IF
  11.  
  12. halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!

SimplY

  • Освоившийся
  • **
  • Сообщений: 88
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #4 : Январь 15, 2022, 04:58:59 pm »

Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  9.  print("не нашли")
  10. END_IF
  11.  
  12. halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Сарказм? Надоел тут всем?

Иван_Васильевич

  • Освоившийся
  • **
  • Сообщений: 26
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #5 : Январь 20, 2022, 02:12:41 pm »

Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8.  
  9. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  10.  print("не нашли")
  11. END_IF
  12.  
  13. halt

Спасибо))
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Сарказм? Надоел тут всем?
Л-логика
 когда перестанут отвечать на твои сообщения, то считай уже надоел.
 А слово Сарказм здесь ругательное, в виду низкого, среднего культурного уровня зарегистрированных пользователей
 форума, попрошу его не употреблять, ведь реально могут новую травлю начать всего из-за одного неосторожного или непонятного слова. Успехов вам в освоении программы.

Oblie1968

  • Освоившийся
  • **
  • Сообщений: 27
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #6 : Февраль 21, 2022, 02:51:47 pm »
И вам огромное человеческое СПАСИБО, что взяли на себя этот огромный труд; практически в одиночку оживлять умираюющий форум новыми темами!
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

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

Код: Clickermann
  1. $ncount=TFCOUNT("file.txt")
  2. $seek=0
  3. FOR($n=1, $n <= $ncount and $seek==0) //перебор всех строк
  4.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  5.      $seek=$n
  6.   END_IF  
  7. END_CYC
  8.  
  9. IF($seek)
  10.  print("Нашли в строке ", $seek)    //если есть
  11. ELSE
  12.  print("не нашли")                //если ее нет
  13. END_IF
  14.  
  15. halt

dramster

  • Герой форума
  • *****
  • Сообщений: 1130
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #7 : Февраль 21, 2022, 05:07:00 pm »
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

Что-то мне подсказывает, что  нынче пропал интерес у людей что-то ломать, читить,... . И скорее всего это правильно. А кликерман был создан именно в то время, когда это было востребовано. Другое дело, это автоматизация работы на пк , но тут аудитории уже намного меньше.
Еще пару лет назад тут было куча интересных задач и реализаций этих задач на кликере. Сейчас же всем пофиг, максимум, как кликнуть и как остановить...  :-[ .
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.

Oblie1968

  • Освоившийся
  • **
  • Сообщений: 27
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #8 : Февраль 22, 2022, 01:06:54 am »
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.
Мне кажется, такие задачи не для кликера, он же однозначно будет их исполнять долго.

Я бы лучше пообсуждал чисто кликермановскую специфику. Вот кликерман совершенно не работает, например, с текстом, а я в хвост и в гриву его юзаю. Пиксели найти, про картинки я вообще молчу, долго и не надёжно, а текст - милое дело. Не всегда, конечно, Ctrl+A Ctrl+C доступно, в играх текст не увидишь, но что касается сайтов - первейшее дело, анализируешь сразу весь текст, не только тот, который виден на экране.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3800
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #9 : Февраль 22, 2022, 09:36:26 am »
Мне кажется, такие задачи не для кликера, он же однозначно будет их исполнять долго.
Это и так понятно было, но интересно.

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

Я бы лучше пообсуждал чисто кликермановскую специфику. Не всегда, конечно, Ctrl+A Ctrl+C доступно, в играх текст не увидишь, но что касается сайтов - первейшее дело, анализируешь сразу весь текст, не только тот, который виден на экране.
А вот это как раз не кликеровская специфика - работать с текстом сайта, для этого почти нет функционала. Если нужно работать с запросами или с кодом сайта лучше выбрать более подходящий инструмент, python тот же.
« Последнее редактирование: Февраль 22, 2022, 09:41:18 am от Vint »


Oblie1968

  • Освоившийся
  • **
  • Сообщений: 27
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #10 : Март 02, 2022, 08:08:03 pm »
Кликер нормально работает с текстом. Ну, достаточно нормально  :) В основном с одиночными строками, с многострочными сложнее, особенно в старых версиях.
И почему это про картинки нужно молчать? Это как раз один из основных функционалов. Работает он с ними прекрасно, возможности хорошие. Нужно научиться ими пользоваться и большинство задач может быть решено.
Основной смысл кликера - работа с графическим отображнением, где прямого доступа к тексту или коду нет, или этот доступ не сулит ничего хорошего. Не единственная, но основная. В этом он похож на действия человека при работе с приложениями. И в этом же заключается большинство бед.
А я считаю, что кликерман очень плохо работает с текстом. Про проблему отдельных символов я уже говорил, у меня масса случаев, когда он не находит текст, который есть; из буфера обмена текст берётся не всегда корректно; при сравнении строк, в которых есть служебные символы, те же CR/LF элементарные, вообще вылетает с ошибкой. Но так или иначе все эти трудности обходятся. Главное достоинство кликермана, по моему мнению, в том, что он может работать одновременно с различными приложениями, от офиса и графических редакторов, до сайтов и игрушек, и именно без влезания в суть того, что там у этих приложений внутри происходит. Программы "на коленке" пишутся быстро и получаются необычайно эффективные.

Новую версию ещё не пробовал. Скажите, в новой версии хоть какие-то файловые функции реализованы? То же переименование файла или каталога, копирование приходится выполнять внешними командными файлами.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3800
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #11 : Март 05, 2022, 05:32:03 pm »
Новую версию ещё не пробовал. Скажите, в новой версии хоть какие-то файловые функции реализованы? То же переименование файла или каталога, копирование приходится выполнять внешними командными файлами.
Все новые функции перечислены в справке, в разделе "История развития".
Для использования команд cmd, необязательно создавать файлы, можно передавать их аргументами.


Hito

  • Герой форума
  • *****
  • Сообщений: 1174
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #12 : Март 12, 2022, 01:41:26 pm »
Честно говоря, я тоже сильно удивлён, что форум не живёт. Может, где-то есть другой форум, где идёт нормальное обсуждение проблем и траблов кликермана, а мы этот другой форум просто не знаем?

Что-то мне подсказывает, что  нынче пропал интерес у людей что-то ломать, читить,... . И скорее всего это правильно. А кликерман был создан именно в то время, когда это было востребовано. Другое дело, это автоматизация работы на пк , но тут аудитории уже намного меньше.
Еще пару лет назад тут было куча интересных задач и реализаций этих задач на кликере. Сейчас же всем пофиг, максимум, как кликнуть и как остановить...  :-[ .
Я до сих пор иногда вспоминаю "поиск поти А*" которую реализовал Vint на кликермане http://crapware.aidf.org/forum/index.php?topic=1958.0 , даже вроде понял как это работает, пытался переписать мысли в код, но все шло наперекосяк... и все, дым.. Это то что вспомнил в первую очередь, таких тем уйма.
Просто во многих играх стали устанавливать защиту от автокликов, от которой уже и ps/2 не избавляет. Вот и пользоваться стали меньше ))
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Сообщений: 1174
    • Просмотр профиля
Re: Найти нужную строку в текстовом файле
« Ответ #13 : Март 12, 2022, 02:24:43 pm »
Код: Clickermann
  1. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  2.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  3.      print("Нашли в строке ", $n)    //если есть
  4.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  5.   END_IF  
  6. END_CYC
  7.  
  8. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  9.  print("не нашли")
  10. END_IF
  11.  
  12. halt

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

Код: Clickermann
  1. $t = $_ms
  2. FOR($n=1, $n < TFCOUNT("file.txt")+1) //перебор всех строк
  3.   IF(TFREAD("file.txt", $n) = "Искомая строка")  //сверяем каждую строку с искомой
  4.      print("Нашли в строке ", $n)    //если есть
  5.      $n = TFCOUNT("file.txt")+1 //стоп цикл
  6.   END_IF
  7. END_CYC
  8.  
  9. IF($n < TFCOUNT("file.txt")+2) //если ее нет
  10.   print("не нашли")
  11. END_IF
  12. LOGWRITE ("время поиска = ",$_ms-$t)
  13.  
  14.  
  15.  
  16.  
  17. $t = $_ms
  18. TFREADARR ("file.txt", $arr)
  19. $st_num = 0
  20. FOR($i=0,$i<ARRSIZE($arr)+1)
  21.   IF($arr[$i] = "Искомая строка")
  22.      $st_num = $i+1
  23.      $i=ARRSIZE($arr)
  24.   END_IF
  25. END_CYC
  26. UNDEFINE ($arr)
  27.  
  28. IF($st_num > 0)
  29.   LOGWRITE ("Строка найдена на позиции ",$st_num)
  30. else
  31.   LOGWRITE ("Строка не найдена")
  32. END_IF
  33. LOGWRITE ("время поиска = ",$_ms-$t)
  34.  
  35. HALT

« Последнее редактирование: Март 12, 2022, 02:44:53 pm от Hito »
Я не ду... Потому и не бу...