Списки: Find_In_List()
Поиск элемента в строковом списке. См. также Пропущенные значения в списках
' Возвращает порядковый номер параметра STRING в строковом списке LIST (разделитель - запятые) или -1, если его нет ' Нумерация начинается с нуля
FUNC Find_In_List(fs_list,fs_string)
result = 0
for fil_param in fs_list
if fil_param == ""&fs_string
return
end if
result = result + 1
end for
result = -1
END FUNC
В большинстве случаев необходимо просто проверить наличие строки в списке. Для этого есть более короткий путь. Можно использовать функцию qpile, но макросом M4 получается и быстрее и элегантнее:
# Возвращает -1, если значение отсутствует в списке, иначе - присутствует define(`Exists_In_List',`ifelse($#,2,find("," & $1 & ",",0,"," & $2 & ","),m4_error(Invalid number of parameters EXISTS_IN_LIST))')