Author Topic: Работа с текстовыми файлами  (Read 8268 times)

0 Members and 1 Guest are viewing this topic.

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Работа с текстовыми файлами
« on: July 02, 2014, 11:11:37 PM »
Здравствуйте. В общем, возник вопрос. Есть сайт, на котором работает кликер, нужно сделать так, чтобы перед выполнением скрипта бралась ссылка из адресной строки браузера и записывалась в текстовый файл. При следующих выполнениях скрипта, он так же должен брать ссылку из адресной строки и проверять, есть ли она в текстовике. Если она есть - выполнять указанное действие, а если нет - то записывать ее в тхт и выполнять другое указанное действие. Скажите, пожалуйста, можно такое реализовать кликером?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с текстовыми файлами
« Reply #1 on: July 03, 2014, 12:18:04 AM »
Code: (clickermann) [Select]
WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения (установить свою координату!)
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()

$n = 0
$action = 0
$count = TFCOUNT ("input.txt")
WHILE($count > $n)
   $comp = TFRead("input.txt", $n+1)
   INC($n,1)
   IF($comp = $strclip)
      $count = 0
      $action = 1
   END_IF
END_CYC

IF($action = 1)
   // сдесь действие если строка совпала
ELSE
   TFWRITE("input.txt", $strclip) // запись строки в файл
   WAITMS (50)
   // сдесь действие если строка не совпала
END_IF
« Last Edit: July 03, 2014, 12:21:32 AM by Oraven »

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Работа с текстовыми файлами
« Reply #2 on: July 03, 2014, 08:01:47 AM »
Спасибо большое за оперативную помощь) Буду вечером сегодня пробовать. Вопрос такой, этот скрипт будет сохранять строки в список и при работе сверять строку из адресной строки с каждой строкой из текстовика? В текстовике со временем скопятся тысячи строк, сильно ли это повлияет на быстродействие скрипта во время обработки текстового файла?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с текстовыми файлами
« Reply #3 on: July 03, 2014, 10:11:27 AM »
Спасибо большое за оперативную помощь) Буду вечером сегодня пробовать. Вопрос такой, этот скрипт будет сохранять строки в список и при работе сверять строку из адресной строки с каждой строкой из текстовика? В текстовике со временем скопятся тысячи строк, сильно ли это повлияет на быстродействие скрипта во время обработки текстового файла?
Конечно повлияет, замедлится.
Ты "тысячи" не озвучивал. Но, к счастью, ты не первый. Прочти вот эту тему http://crapware.aidf.org/forum/index.php?topic=1011.0


justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Работа с текстовыми файлами
« Reply #4 on: July 03, 2014, 11:29:44 AM »
Я не особо разбираюсь  во всех этих кодах... Как я понял первоначальной задачей там было сократить количество символов в строке? Для меня это не проблема, у меня и так будет копироваться не весь урл, а лишь его часть, восьмизначное число.  И еще для большего быстродействия нужно организовать чтение всего файла одновременно, а не каждой строки по очереди, верно я понял? Буду премного благодарен, если покажите мне вариант моего скрипта, который будет считывать в массив все строки сразу, а то у меня неделя уйдет, пока я сам буду в этом разбираться, так как времени после работы у меня совсем не много. Кстати, компьютер у меня точно такой же, как у автора темы, ссылку на которую вы мне дали, i7 3,5 Ггц, и SSD диск на котором стоит кликер, посмотрим что получится.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с текстовыми файлами
« Reply #5 on: July 03, 2014, 12:41:39 PM »
Нет, задача стояла ускорить. Уменьшение количества символов это всего лишь одно из первых предложений.
Массивы ускорят от 0 до 50% как повезёт. Большие массивы тоже долго ворочаются.
В ссылке в моём посте http://crapware.aidf.org/forum/index.php?topic=1011.msg4339#msg4339 есть все примеры. В массив "тест №6"
Code: (clickermann) [Select]
UNDEFINE($url)
$url = ""
for ($i, $i<TFCOUNT("name_small.txt"))
  $data = TFRead("name_small.txt", $i+1)
  ARRPUSH($url, $data)
end_cyc

И еще для большего быстродействия нужно организовать чтение всего файла одновременно, а не каждой строки по очереди, верно я понял?

Нет функции считывания всего файла. Она и бессмысленна без других инструментов которыми "весь текст" можно обрабатывать - экранирование, регулярные выражения... кодировки в конце концов (о, это вообще тема).
« Last Edit: July 03, 2014, 12:48:21 PM by Vint »


justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Работа с текстовыми файлами
« Reply #6 on: August 30, 2014, 12:05:20 AM »
Появился такой вопрос. Можно-ли сделать так, чтобы проверка текстовика начиналась не сверху вниз, а снизу вверх?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с текстовыми файлами
« Reply #7 on: August 30, 2014, 12:39:07 AM »
Да хоть вдоль и поперек

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работа с текстовыми файлами
« Reply #8 on: August 30, 2014, 10:19:53 AM »
Появился такой вопрос. Можно-ли сделать так, чтобы проверка текстовика начиналась не сверху вниз, а снизу вверх?
не знаю о чем ты, но цикл тикающий в обратную сторону выглядит вот так

Code: (clickermann) [Select]
for($i=10, $i>0, -1)
  print($i)
end_cyc

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Работа с текстовыми файлами
« Reply #9 on: August 30, 2014, 10:33:51 AM »
Да хоть вдоль и поперек
А конкретно в этом скрипте что нужно поправить, чтобы сверка строки начиналась с конца текстового файла, а не с начала?
Code: [Select]
WAIT(1)
 
LCLICK(1184,64)  // клик по адресной строке для выделения (установить свою координату!)
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
 
$n = 0
$action = 0
$count = TFCOUNT ("input.txt")
WHILE($count > $n)
   $comp = TFRead("input.txt", $n+1)
   INC($n,1)
   IF($comp = $strclip)
      $count = 0
      $action = 1
   END_IF
END_CYC
 
IF($action = 1)
   // сдесь действие если строка совпала
ELSE
   TFWRITE("input.txt", $strclip) // запись строки в файл
   WAITMS (50)
   // сдесь действие если строка не совпала
END_IF

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с текстовыми файлами
« Reply #10 on: August 30, 2014, 12:35:05 PM »
Code: (clickermann) [Select]
WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения (установить свою координату!)
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()

$action = 0
$count = TFCOUNT ("input.txt")
WHILE(0 < $count)
   $comp = TFRead("input.txt", $count)
   INC($count,-1)
   IF($comp = $strclip)
      $count = 0
      $action = 1
   END_IF
END_CYC

IF($action = 1)
   // сдесь действие если строка совпала
ELSE
   TFWRITE("input.txt", $strclip) // запись строки в файл
   WAITMS (50)
   // сдесь действие если строка не совпала
END_IF