Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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) |
Ну как я и сказал САБСТР+ИНСТР
Но это также надо в цикл вгонять, чтобы разобрать всю строку. |
|
|
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) |
Ну как я и сказал САБСТР+ИНСТР
Но это также надо в цикл вгонять, чтобы разобрать всю строку. |
Не надо. можно готовый цикл взять.
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; |
И циклов никаких не надо |
|
|
|