1 (изменено: Gh0sTG0, 2018-11-26 19:51:11)

Тема: 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
Telegram jollycoder

3 (изменено: Gh0sTG0, 2018-11-26 19:51:33)

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
Telegram jollycoder

5 (изменено: Gh0sTG0, 2018-11-26 19:51:47)

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

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