Автор Тема: Отправить элементы массива в буфер обмена  (Прочитано 98 раз)

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

SimplY

  • Освоившийся
  • **
  • Сообщений: 68
    • Просмотр профиля
Разбирался, разбирался, разбирался и вроде начал понимать, что такое массивы и зачем они нужны.

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

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


Код: Clickermann
  1. GETSCREEN(348,118,408,694)
  2. SCANPICTURE($ARR_SCAN, 348,118,408,694, "сайт.bmp", -1, 80)
  3.  
  4. $ARR_NUM = 0
  5. WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
  6.   $X = $ARR_SCAN [$ARR_NUM]
  7.   INC($ARR_NUM,1)
  8.   $Y = $ARR_SCAN [$ARR_NUM]
  9.   INC($ARR_NUM,1)
  10.   LDOWN(404, $Y+5)   // Начало выделения текста
  11.   WAITMS(10)
  12.   LUP(600,$Y+5)      //Конец выделения текста
  13.   WAITMS(500)
  14.   KEYDOWN (#CTRL)
  15.   WAITMS (50)
  16.   KEYPRESS (#C)
  17.   KEYUP (#CTRL)
  18.   WAITMS(10)
  19.   $ST [$ARR_NUM] = FROMCLIP() // Каждый текст копируем в отдельные элементы массива
  20. END_CYC
  21. UNDEFINE($ARR_SCAN)
  22. WAITMS(150)
  23. LCLICK(660,751)  //В эксель
  24. WAITMS(300)
  25. #DEFINE EOL: CHAR(13), CHAR(10)
  26. $b = STRCONCAT($ST [0], EOL, $ST [1],  EOL, $ST [2]) // Сформировать все элементы массива после найденных картинок в столбик.
  27. TOCLIP($b) // В буфер
  28. WAITMS(10)
  29. KEYDOWN (#CTRL)
  30. WAITMS (50)
  31. KEYPRESS (#V)
  32. KEYUP (#CTRL)
  33. HALT
« Последнее редактирование: Август 01, 2020, 09:44:08 pm от SimplY »

4.У.В.@.К

  • Освоившийся
  • **
  • Сообщений: 68
    • Просмотр профиля
Re: Отправить элементы массива в буфер обмена
« Ответ #1 : Август 02, 2020, 11:26:07 am »
Немного переделал скрипт. Массив, из содержимого буфера, там не нужен. Вместо массива теперь строка-столбик (образно). Строку можно склеить из куда большего количества элементов, чем 40.
Кстати респект автору директивы "EOL", удобная конструкция. Взята на вооружение. Спасибо! :)

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

Код: Clickermann
  1. GETSCREEN(348,118,408,694)
  2. SCANPICTURE($ARR_SCAN, 348,118,408,694, "сайт.bmp", -1, 80)
  3.  
  4. $ARR_NUM = 0
  5. #DEFINE EOL: CHAR(13), CHAR(10)
  6. $ST = "" // Строка-столбик, с разделителями EOL (изначально пустая)
  7. TOCLIP("") // Очищаем буфер
  8. WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
  9.   $X = $ARR_SCAN [$ARR_NUM]
  10.   INC($ARR_NUM,1)
  11.   $Y = $ARR_SCAN [$ARR_NUM]
  12.   INC($ARR_NUM,1)
  13.   LDOWN(404, $Y+5)   // Начало выделения текста
  14.   WAITMS(10)
  15.   LUP(600,$Y+5)      //Конец выделения текста
  16.   WAITMS(500)
  17.   KEYDOWN (#CTRL)
  18.   WAITMS (50)
  19.   KEYPRESS (#C)
  20.   KEYUP (#CTRL)
  21.   WAITMS(10)
  22.   $ST = STRCONCAT($ST, EOL, FROMCLIP()) // Каждый текст добавляем в строку-столбик
  23. END_CYC
  24. UNDEFINE($ARR_SCAN)
  25. WAITMS(150)
  26. LCLICK(660,751)  // В эксель
  27. WAITMS(300)
  28. TOCLIP(STRREPLACE($ST, EOL, "")) // Строку-столбик в буфер, и отрезаем EOL вначале строки
  29. WAITMS(10)
  30. KEYDOWN (#CTRL)
  31. WAITMS (50)
  32. KEYPRESS (#V)
  33. KEYUP (#CTRL)
  34. HALT

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

Atas

  • Активный участник
  • ***
  • Сообщений: 140
    • Просмотр профиля
Re: Отправить элементы массива в буфер обмена
« Ответ #2 : Август 02, 2020, 07:09:23 pm »
Прошел год...
Re: Копировать название и описание организации из 2gis
В том примере текст копируется именно столбиком и без лишнего рукоблудства с поиском картинок.


SimplY

  • Освоившийся
  • **
  • Сообщений: 68
    • Просмотр профиля
Re: Отправить элементы массива в буфер обмена
« Ответ #3 : Август 03, 2020, 11:03:42 am »
Прошел год...
Re: Копировать название и описание организации из 2gis
В том примере текст копируется именно столбиком и без лишнего рукоблудства с поиском картинок.
Здесь другая задача стоит.