В первом столбце находятся данные для переменной, во втором "ключ" который говорит нужно ли использовать данные из первого столбца.
Как мне выполнить поиск по массиву во втором столбце и присвоить данные из первого столбца той строки в которой нашлось совпадения "ключа"?
Помогите примером.
Использовать хочу в этом скрипте:
скрипт
--lua
local hw = require'arduino'
hw.com = hw.get_port (2341, 8036) -- указать vid и pid ардуино
if hw.com < 1 then -- если номер порта меньше 1
log ('error = ' .. tostring(hw.com)) -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено
end_script ()
end
hw.set_delay_mouse (200) -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(50) -- установить рандом между нажатиями клавиш мыши от 200 до 249 мсек
-- т. е. между нажатием и отпусканием кнопки мыши будет пауза от 20 до 29 мсек.
hw.set_offset_mousemove(1) -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(2) -- установить паузу между каждый шагом перемещения мыши,
-- чем меньше, тем быстрее перемещается
::poisk_logina::
while true do
local read_logins_from_file=[[C:\not\list_login.txt]] -- путь к файлу
local arrLogin={} -- массив
log "clear"
log "mode compact"
function loadarray(array, read)
local file= io.open(read, "r")
if file then
for v in file:lines() do
array[#array+1]={}
for k, v1 in string.gmatch(v,"[^\t]+") do
table.insert(array[#array], k)
end
end
file:close()
return 1
end
return nil
end
if loadarray(arrLogin, read_logins_from_file) then -- если функция выполнена успешно
log (arrLogin[1][1])
log (arrLogin[1][1])
else
log ("Файл не найден")
end
local startX, startY, endX, endY = 530, 180, 757, 254 -- координаты поиска
local path = arrLogin[1][1] -- путь к картинке, bmp 24 бита берется из массива
findoffsetx (10 + math.random (50)) -- смещение вправо на 50 пикселей
findoffsety (5 + math.random (20)) -- смещение вниз на 30 пикселей
local login, a = findimage (startX, startY, endX, endY, {path}, 2) -- поиск картинки
hint (a) -- результат поиска, подсказка в правом --нижнем углу
if login then -- если найдена
--log ("Изображение найдено в координатах X= " .. login[1][1] .. " Y= " .. login[1][2])
hw.mouse.move (login[1][1], login[1][2]) -- переместить мышь с учетом уставки findoffsetx + findoffsetу
wait (500 + math.random (1000))
hw.mouse.left ()
else
while true do --цикл поиска пикселя + смещение логинов
findoffsetx (1 + math.random (5)) -- смещение вправо на 1+-5 пикселей
findoffsety (2 + math.random (20)) -- смещение вниз на 2+-20 пикселей
local b = findcolor([[800 170 828 400 (13421772) %arr]]) -- параметры передаются в виде строки
-- [[800 170 828 400-это координаты поиска цвета
-- (00000000)-это искомый цвет
-- %arr название массива поиска функции ]]
hint ("Найдено пикселей " ..
if b > 0 then -- если найдены
hw.mouse.move (arr[1][1], arr[1][2]) -- переместить мышь в наденные координаты
-- с учетом findoffsetx (1 + math.random (5))
-- findoffsety (2 + math.random (20))
wait (500 + math.random (500))
hw.mouse.left_down () -- зажать (не отжимая) левую кнопку мыши
wait (500 + math.random (100))
hw.mouse.move (arr[1][1], arr[1][2] - 1) -- переместить мышь на -1 пиксель по оси у координаты
wait (500 + math.random (100))
hw.mouse.left_up () -- отжать левую кнопку мыши
break
end
end
end
end
фаил list_login.txt имеет следующий вид:
[["C:\not\img00001.bmp"]] y
[["C:\not\img00002.bmp"]] n
[["C:\not\img00003.bmp"]] n
Вверх