Страница 1 из 1

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

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

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

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

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

P.S. Я правильно понимаю, что кроме как через строку налогов по другому налоги никак не задаются в платежке?

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

Добавлено: 06 янв 2004, 18:50
m0p3e
SubStr спасет отца русской демократии.
Простая задача. Нашел первое вхождение - возьми, отрежь его. Ищи еще... :)
Подулючить функцию можно как объектный фейс. Просто и удобно.

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

Добавлено: 06 янв 2004, 19:13
WiRuc
Это конечно, хорошо, но у меня не переменная, а поле таблицы и править там я ничего не могу.

>Подулючить функцию можно как объектный фейс
Можно поподробней. Желательно с примером:)

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

Добавлено: 06 янв 2004, 19:36
m0p3e
Пример давал где-то здесь.
Ну а кто мешает считать поле таблицы в переменную и работать с ней? :)

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

Добавлено: 06 янв 2004, 19:44
Deinis
Может быть поможет функция InStr?
InStr('что_ищем', где ищем) = номер_вхождения
IF ( Instr(',',PlPor.NamePl1) <> 0 )
then ...

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

Добавлено: 07 янв 2004, 22:43
Maxim
Кажется тебе нужно это:

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

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

Разбирали в свое время http://www.tyumbit.ru/galaktika/read.ph ... 159&t=4030

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

Добавлено: 08 янв 2004, 17:05
WiRuc
Спасибо:)
То что нужно.