1 (изменено: Gh0sTG0, 2018-10-25 16:37:18)

Тема: AHK: Как сделать рабочий поиск по массиву?

+ открыть спойлер

Сделал скрипт, не работает хоть тресни
(часть, в отладочном файле)


^b::
{
a := ["aaa", "bbb", "ccc"] ;массив
b = %clipboard% ;буфер, для отладки выкинул ту часть что находит место и копирует строку
c := RegExReplace(b, "\R(\R)*+", "") ;избавляюсь от энтера в конце строки, т.к. она содержит 2+ слова, выделаю триплкликом потом ^c
								
For Key, Value in a
{
	if (%c% = %Value%)
	{
		MsgBox, %c%, %Value%
	} else {
		MsgBox, No
	}
}
Return
}

Получаю 3 сообщения подряд: "aaa, aaa", "aaa, bbb" и "aaa, ccc"
Где я накосячил?

Разобрался, надо было InStr(c, Value) использовать, однако

2 (изменено: teadrinker, 2018-10-25 16:49:40)

Re: AHK: Как сделать рабочий поиск по массиву?

Gh0sTG0 пишет:

Где я накосячил?

Да тут проще перечислить, где вы не накосячили. Читайте статью «Переменные и выражения».

Разобрался, надо было InStr(c, Value) использовать, однако

Так не получится. Главная ошибка:

if (%c% = %Value%)

Нужно

if (c = Value)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3 (изменено: Gh0sTG0, 2018-10-25 17:14:04)

Re: AHK: Как сделать рабочий поиск по массиву?

teadrinker
Как то ни странно, я написал дополнение уже после того как проверил работоспособность...
строка if InStr(c, Value) работает... точнее я там вообще все порезал,

if InStr(clipboard, mass[i])

вот так - работает
Чекнул твой вариант - тоже работает, однако. Но для него надо избавляться от энтеров, в отличие от моего(эту строку я тоже порезал)

4

Re: AHK: Как сделать рабочий поиск по массиву?

Gh0sTG0 пишет:

строка if InStr(c, Value) работает

var1 := "test"
var2 := "testblabla"

MsgBox, % Instr(var1, "test")
MsgBox, % Instr(var2, "test")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5

Re: AHK: Как сделать рабочий поиск по массиву?

teadrinker
оу... понял, однако. Дурак был