Списки: Find_Last()
Список в терминологии QPILE есть текстовая строка, состоящая из подстрок, разделенных запятыми. Работа с такими списками может идти двумя способами - путем выгрузки списка в коллекцию или без оной, используя функции работы со строками. Вот пример одной из таких функций - получение последней подстроки.
' Поиск последнего вхождения строки SUB в строке STR
' Возвращает позицию или -1, если символы не найдены
FUNC Find_Last(fs_string,fl_sub)
result = -1
for fl_Position from 0 to fl_Position
fl_Position = find(fs_string,fl_Position,fl_sub)
if fl_Position == -1
return
end if
result = fl_Position
end for
END FUNC
При использовании препроцессора M4 получается такой код:
FUNC FIND_LAST(str,sub)
result = -1
Loop
m4_loop_counter = find(str,m4_loop_counter,sub)
if m4_loop_counter == -1
return
end if
result = m4_loop_counter
EndLoop
EndFunc(result)
См. также Пропущенные значения в списках