Тема: AHK: Поиск строки в списке
out = 192.168.1.1
list =
(
192.168.1.12
192.168.1.13
192.168.1.14
еще 5000 строк
)
Как можно узнать, есть ли уже такая строка (out) в списке (list)?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
out = 192.168.1.1
list =
(
192.168.1.12
192.168.1.13
192.168.1.14
еще 5000 строк
)
Как можно узнать, есть ли уже такая строка (out) в списке (list)?
С помощью 'strSplit(list, "`n")' делаем из строки - массив.
С помощью 'hasVal(arr, value)' проверяем, есть ли указанное значение (value) в массиве (arr). В нашем случае есть ли в массиве listArr, значение из переменной out1 и out2.
out1 = 192.168.1.1
out2 = 192.168.1.14
list =
(
192.168.1.12
192.168.1.13
192.168.1.14
еще 5000 строк
)
; listArr := strSplit(list, "`n")
listArr := StrSplit(list, "`n", "`r")
msgbox, % out1 (hasVal(listArr, out1) ? "" : " не") " находится в списке"
msgbox, % out2 (hasVal(listArr, out2) ? "" : " не") " находится в списке"
hasVal(haystack, needle)
{
for index, value in haystack
if (value == needle)
return index
return 0
}Phoenixxx_Czar Все работает так как надо, строку находит. Больше суток не мог решить эту задачу (самостоятельно). Спасибо Вам большое!
Phoenixxx_Czar Еще возник небольшой вопросик, можно ли узнать количество элементов в массиве listArr?
И почему то не ищет, если в переменную list добавить строки из файла через FileRead
listArr := strSplit(list, "`n")
Лучше так:
listArr := StrSplit(list, "`n", "`r")Phoenixxx_Czar Еще возник небольшой вопросик, можно ли узнать количество элементов в массиве listArr?
Ну нужно же хоть немного справку открывать
.
list =
(
192.168.1.12
192.168.1.13
192.168.1.14
еще 5000 строк
)
listArr := strSplit(list, "`n", "`r")
msgbox, % listArr.maxIndex()И согласен с комментарием выше, это должно решить проблему с fileRead.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться