Author Topic: Ошибка при выделении текста  (Read 3604 times)

0 Members and 1 Guest are viewing this topic.

Alberttt

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Ошибка при выделении текста
« on: January 20, 2015, 07:51:48 PM »
 У программы была такая цель: копировать часть сайта и ид страницы в файл akmul.txt, менять ид страницы в адресной строке на +1, переходить на неё и далее всё заново.
 Что у меня получилось:
Code: (clickermann) [Select]
#name "New Script"

DEFINE($var, TFREAD("number.txt", 1))  //новая переменная из файла
TFDELETE("number.txt", 1)              //удалить 1 строку файла
TOCLIP($var+1)                         //число+1 в буфер
TFWRITE("number.txt", FROMCLIP())      //записать буфер в файл
UNDEFINE($var)                         //удалить переменную
WAITMS(50)
LDOWN(565,43)                         //зажать мышку
WAITMS(150)
MOVE(598,477)                          //перетащить мышку
WAITMS(150)
LUP(598,477)                           //отпустить мышку
WAITMS(150)
KEYSTRING (FROMCLIP(), 100)           //печатание из буфера в браузер
TFWRITE("akmul.txt", FROMCLIP())      //записать буфер в файл
WAITMS(150)
LDOWN(235,304)                         //зажать мышку
WAITMS(150)
MOVE(610,42)                          //перетащить мышку
WAITMS(150)
LUP(610,42)                           //отпустить мышку
WAITMS(150)
keydown(#ctrl)                        //копировать инфу
waitms(99)
keypress(#c)
waitms(99)
keyup(#ctrl)
waitms(99)
TFWRITE("akmul.txt", FROMCLIP())      //записать инфу в файл
KEYPRESS(#Enter)

halt
Адресную строку программа исправно корректит, а выделяет и записывает в файл коряво. Координаты правильные, пробовал привязку к окну, получается ещё хуже с координатами. Ребят, выручайте)
« Last Edit: January 20, 2015, 07:53:21 PM by Alberttt »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка при выделении текста
« Reply #1 on: January 20, 2015, 11:38:26 PM »
Никаких привязок. Ну зачем? Вот какая цель?
Никаких кейстрингов, вставляй из буфера по ctrl+v
Кейстринг это не аналог принта...
После чтения из файла получаем строку. Перед вычислениями нужно перевести ее в число, обычно командой INT для целых.
Зачем вот эти манипуляции с дефине? Просто присваивай через 'равно'. И не нужно после удалять.
Судя по координате Y там не одна строка попадет. Может и ошибаюсь.


Alberttt

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Ошибка при выделении текста
« Reply #2 on: January 21, 2015, 06:04:27 AM »
Что значит "привязка"? Если имеется в виду привязка к окну, я и не привязывал, просто решил попробовать, а вдруг заработает. Если имеется в виду привязка к файлу number.txt, это для того чтобы потом ид страницы не потерять. Кейстринг исправно вводил ид(там только цифры в 4 символа, в 1 строку). Посмотрел я на свои координаты y и офигел. Может в них и есть проблема. А проблема в том, что строчки
Code: (clickermann) [Select]
LDOWN(235,304)                         //зажать мышку
WAITMS(150)
MOVE(610,42)                          //перетащить мышку
WAITMS(150)
LUP(610,42)                           //отпустить мышку
WAITMS(150)
keydown(#ctrl)                        //копировать инфу
waitms(99)
keypress(#c)
waitms(99)
keyup(#ctrl)
waitms(99)
TFWRITE("akmul.txt", FROMCLIP())      //записать инфу в файл
неправильно выделяют текст, а потом записывают его в виде восклицательных знаков. Днём ещё посмотрю, спасибо за внимание)
« Last Edit: January 21, 2015, 06:06:03 AM by Alberttt »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка при выделении текста
« Reply #3 on: January 21, 2015, 08:35:09 AM »
Конечно имелась ввиду привязка к окну.
Если там только цифры... можно и KEYSTRING.


Alberttt

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Ошибка при выделении текста
« Reply #4 on: January 21, 2015, 02:12:38 PM »
Переписал весь код 8) Кроме записи в файл,всё отлично работает. Записываются только английские символы, проблема именно в записи, а не копировании. Пробовал вставить руками текст, который скопировала программа, всё нормально. Буду организовывать запись через вызов окна блокнота и ctrl+v...
Code: (clickermann) [Select]
#name "New Script"

$id1=TFREAD("number.txt", 1)       // Старый ид страницы из number.txt
$id=($id1+1)                       // Новый ид страницы
TFCLEAR("number.txt", 0)           // Удалить старый ид страницы из number.txt
TFWRITE("number.txt", $id)         // Записать новый ид в number.txt
TFWRITE("akmul.txt", $id)          // Записать новый ид в akmul.txt
WAITMS(50)
LDOWN(565,43)                             //
WAITMS(150)                              //
MOVE(608,43)                            // Выделить старый ид в адресной строке
WAITMS(150)                            //
LUP(608,43)                           //
WAITMS(150)
KEYSTRING ($id, 100)                // Печатать новый ид в адресную строку
WAITMS(150)
KEYPRESS(#Enter)                    // Перейти к новой странице
WAIT(2)
LDOWN(235,304)                            //
WAITMS(150)                              //
MOVE(610,476)                           // Выделить нужный текст
WAITMS(150)                            //
LUP(610,476)                          //
WAITMS(150)
keydown(#ctrl)                            //
waitms(99)                               //
keypress(#c)                            // Копировать текст
waitms(99)                             //
keyup(#ctrl)                          //
waitms(99)
TFWRITE("akmul.txt", FROMCLIP())    // Записать текст в akmul.txt

halt

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка при выделении текста
« Reply #5 on: January 21, 2015, 03:34:21 PM »
Ты про строку 31? Так это просто недопустимые символы в строке. У кликермана с этим пока проблемы. Кавычки, скобки всякие.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка при выделении текста
« Reply #6 on: January 21, 2015, 03:36:30 PM »
Я бы с адресной строкой не так работал
Code: (clickermann) [Select]
#name "New Script"

// Браузер
$brawser = "firefox.exe"
//$brawser = "opera.exe"
//$brawser = "chrome.exe"
//$brawser = "firefox.exe"

$pref = "http://demotivators.to/archive/2009/5/?page=" // постоянная часть адреса

$id = INT(INIREAD("number.ini", "id"))       // Старый ид страницы из number.ini
WAITMS(50)

WHILE(1)
   INC($id)                                  // Новый ид страницы
   EXECUTE($brawser, STRCONCAT ($pref, $id)) // открываем вкладку
   WAIT(2)
   LDOWN(235,304)     // Выделить нужный текст
   WAITMS(50)
   MOVE(610,476)
   WAITMS(50)
   LUP(610,476)
   WAITMS(100)
   keydown(#ctrl)     // Копировать текст
   waitms(30)
   keypress(#c)
   waitms(30)
   keyup(#ctrl)
   waitms(100)

   INIWRITE("number.ini", "id", $id)    // Записать новый ид в number.ini
   WAITMS(30)
   TFWRITE("akmul.txt", $id)            // Записать новый ид в akmul.txt
   WAITMS(30)
   TFWRITE("akmul.txt", FROMCLIP())     // Записать текст в akmul.txt
   WAITMS(30)
   
   LCLICK(636,11)    // закрываем вкладку
   WAITMS(70)
   KEYDOWN(#CTRL)
   WAITMS(50)
   KEYPRESS(#W)
   WAITMS(50)
   KEYUP(#CTRL)
   WAITMS(300)
END_CYC

Ну и вставку заменить на  Ctrl+V