Разбор выражения

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Разбор выражения

Сообщение WiRuc »

Подскажите, есть ли в Галактике функция, позволяющая получать отдельные слова из строки или функция поиска следующего вхождения какого-либо символа (типа Pos, но с возможность найти следующее вхождение).
Это необходимо, чтобы разобрать строку на отдельные составляющие, отделенные запятыми (если быть конкретными, то для разбора строки налогов платежки при отсылке в клиент-банк).

Что-то типа:
Исходная строка: 111,222,333,444444,5

GetWordNum(строка, разделитель, номер слова)
или
Pos(строка, что ищем, номер вхождения)

Если нет такой функции, то можно ли ее написать на Випе и подключить через ресурс?

P.S. Я правильно понимаю, что кроме как через строку налогов по другому налоги никак не задаются в платежке?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Разбор выражения

Сообщение m0p3e »

SubStr спасет отца русской демократии.
Простая задача. Нашел первое вхождение - возьми, отрежь его. Ищи еще... :)
Подулючить функцию можно как объектный фейс. Просто и удобно.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Re: Разбор выражения

Сообщение WiRuc »

Это конечно, хорошо, но у меня не переменная, а поле таблицы и править там я ничего не могу.

>Подулючить функцию можно как объектный фейс
Можно поподробней. Желательно с примером:)
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Разбор выражения

Сообщение m0p3e »

Пример давал где-то здесь.
Ну а кто мешает считать поле таблицы в переменную и работать с ней? :)
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Разбор выражения

Сообщение Deinis »

Может быть поможет функция InStr?
InStr('что_ищем', где ищем) = номер_вхождения
IF ( Instr(',',PlPor.NamePl1) <> 0 )
then ...
Maxim
Постоянный гость
Сообщения: 96
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Пермь

Re: Разбор выражения

Сообщение Maxim »

Кажется тебе нужно это:

ExtractDelimitedWord(<str>,1,';')
ExtractDelimitedWord(<str>,2,';')
и т.д.
для пятого элемента будет
ExtractDelimitedWord(<str>,5,';')

В данном случае разделитель ';'

Разбирали в свое время http://www.tyumbit.ru/galaktika/read.ph ... 159&t=4030
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Re: Разбор выражения

Сообщение WiRuc »

Спасибо:)
То что нужно.
Ответить