| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| 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;
 | 
 
 И циклов никаких не надо
 |  | 
	
		|  | 
	
		|  |