Author Topic: Отправить элементы массива в буфер обмена  (Read 1770 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Разбирался, разбирался, разбирался и вроде начал понимать, что такое массивы и зачем они нужны.

На сайте 2гис есть несколько одинаковых картинок. Справа от каждой картинки в определенных координатах расположено слово. Если картинка найдена одна, то выделяется одно слово. Если найдено 4 картинки, то выделение идет после каждой картинки итого 4 слова. Но как это потом вставить?

Написал скрипт, но выдается ошибка в строках 25 и 26. Ну и не понятно, что делать, если не 3, а нужно вставить 40.


Code: (clickermann) [Select]
GETSCREEN(348,118,408,694)
SCANPICTURE($ARR_SCAN, 348,118,408,694, "сайт.bmp", -1, 80)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LDOWN(404, $Y+5)   // Начало выделения текста
   WAITMS(10)
   LUP(600,$Y+5)      //Конец выделения текста
   WAITMS(500)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYPRESS (#C)
   KEYUP (#CTRL)
   WAITMS(10)
   $ST [$ARR_NUM] = FROMCLIP() // Каждый текст копируем в отдельные элементы массива
END_CYC
UNDEFINE($ARR_SCAN)
WAITMS(150)
LCLICK(660,751)  //В эксель
WAITMS(300)
#DEFINE EOL: CHAR(13), CHAR(10)
$b = STRCONCAT($ST [0], EOL, $ST [1],  EOL, $ST [2]) // Сформировать все элементы массива после найденных картинок в столбик.
TOCLIP($b) // В буфер
WAITMS(10)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)
HALT
« Last Edit: August 01, 2020, 09:44:08 PM by SimplY »

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Немного переделал скрипт. Массив, из содержимого буфера, там не нужен. Вместо массива теперь строка-столбик (образно). Строку можно склеить из куда большего количества элементов, чем 40.
Кстати респект автору директивы "EOL", удобная конструкция. Взята на вооружение. Спасибо! :)

Скрипт не проверял, не на чем.

Code: (clickermann) [Select]
GETSCREEN(348,118,408,694)
SCANPICTURE($ARR_SCAN, 348,118,408,694, "сайт.bmp", -1, 80)

$ARR_NUM = 0
#DEFINE EOL: CHAR(13), CHAR(10)
$ST = "" // Строка-столбик, с разделителями EOL (изначально пустая)
TOCLIP("") // Очищаем буфер
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LDOWN(404, $Y+5)   // Начало выделения текста
   WAITMS(10)
   LUP(600,$Y+5)      //Конец выделения текста
   WAITMS(500)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYPRESS (#C)
   KEYUP (#CTRL)
   WAITMS(10)
   $ST = STRCONCAT($ST, EOL, FROMCLIP()) // Каждый текст добавляем в строку-столбик
END_CYC
UNDEFINE($ARR_SCAN)
WAITMS(150)
LCLICK(660,751)  // В эксель
WAITMS(300)
TOCLIP(STRREPLACE($ST, EOL, "")) // Строку-столбик в буфер, и отрезаем EOL вначале строки
WAITMS(10)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)
HALT

UPD: Добавил удаление лишнего EOL вначале строки-столбика.
« Last Edit: August 02, 2020, 11:42:33 AM by 4.У.В.@.К »

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
Прошел год...
Re: Копировать название и описание организации из 2gis
В том примере текст копируется именно столбиком и без лишнего рукоблудства с поиском картинок.


SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Прошел год...
Re: Копировать название и описание организации из 2gis
В том примере текст копируется именно столбиком и без лишнего рукоблудства с поиском картинок.
Здесь другая задача стоит.