CftClub.ru
Клуб специалистов ЦФТ-Банк

Разбить строку по разделителю на массив

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеПн Янв 16, 2017 15:43   Разбить строку по разделителю на массив Ответить с цитатой
Полезность: Нет оценки
Добрый день, уважаемые форумчани! Подскажите пожалуйста, есть ли в ЦФТ функция позволяющая разбить строку по разделителю на массив?
Заранее благодарю за ответы!
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Янв 16, 2017 16:07    Ответить с цитатой
Полезность: Нет оценки
А что значит на массивы? Из этого вы в пять сек можете свой массив состряпать:

Тип ::[DEPART]

function get_high_vho_depart
/* Возвращает подразделение верхнего уровня */
( p_depart in ref [DEPART]
/* ссылка на подразделение */
)
/* результат - подразделение верхнего уровня */
return ref [DEPART];
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеПн Янв 16, 2017 16:18    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
А что значит на массивы? Из этого вы в пять сек можете свой массив состряпать:

Тип ::[DEPART]

function get_high_vho_depart
/* Возвращает подразделение верхнего уровня */
( p_depart in ref [DEPART]
/* ссылка на подразделение */
)
/* результат - подразделение верхнего уровня */
return ref [DEPART];


К сожалению это не совсем то что нужно.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Янв 16, 2017 16:50    Ответить с цитатой
Полезность: Нет оценки
Так вы по русски поясните чего вы хотите.
Подразделение, ниже стоящее, состоит из ссылок HIGH и так пока HIGH будет не пустое. Из этого составить массив нет проблем, только не понятно зачем.
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеПн Янв 16, 2017 16:54    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Так вы по русски поясните чего вы хотите.
Подразделение, ниже стоящее, состоит из ссылок HIGH и так пока HIGH будет не пустое. Из этого составить массив нет проблем, только не понятно зачем.

Есть строка с набором текста
Код:

qwer,qwer1,qwer2,qwer3,qwer4


из этой строки нужно получить массив т.е.
qwer
qwer1
qwer2
qwer3
qwer4
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Янв 16, 2017 17:20    Ответить с цитатой
Полезность: Нет оценки
И чего не умеете substr и instr пользоваться чтобы разобрать строку?

А в контексте подразделений даже не надо и разбирать строку, а тупо вогнать в цикл пока HIGH не будет пусто
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Янв 16, 2017 17:27    Ответить с цитатой
Полезность: Нет оценки
[RUNTIME].[STR].PIECE(sBuf,delim,1)
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Янв 16, 2017 17:31    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
[RUNTIME].[STR].PIECE(sBuf,delim,1)


Ну как я и сказал САБСТР+ИНСТР Very Happy
Но это также надо в цикл вгонять, чтобы разобрать всю строку.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Янв 16, 2017 17:34    Ответить с цитатой
Полезность: Нет оценки
Но зато готовая дистрибутивная.
Programmer
Участник - экстремал


Вступление в Клуб: 26.11.2014
СообщениеПн Янв 16, 2017 17:44    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Но зато готовая дистрибутивная.

Спс. Это как раз то что нужно.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеВт Янв 17, 2017 04:58    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Volod пишет:
[RUNTIME].[STR].PIECE(sBuf,delim,1)


Ну как я и сказал САБСТР+ИНСТР Very Happy
Но это также надо в цикл вгонять, чтобы разобрать всю строку.

Не надо. можно готовый цикл взять.
REPS_DATA.SLIB_STR_PAPAM.ExpandStringToArray
Всё уже украдено до нас.
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 04, 2019 14:54    Ответить с цитатой
Полезность: Нет оценки
Код:
declare
   StrTab     rtl.string_table;
   Rsd_Str   string:=',';
   str  string := 'Корова,Бык,Теленок';
begin
   StrTab := [STR_2].Split(str,Rsd_str);
end;


И циклов никаких не надо
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах