Germany | Finland | Saint Petersburg | Drive

Списки: Find_Last()

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

Список в терминологии 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)

 

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

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