Germany | Finland | Saint Petersburg | Drive

Списки: Find_In_List()

Опубликовано в QPILE

Поиск элемента в строковом списке.  См. также Пропущенные значения в списках

 ' Возвращает порядковый номер параметра 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))')


Добавить комментарий