четверг, 10 декабря 2015 г.

#1153.ToDo. Переделать SplitToArray на итератор

Переделать SplitToArray на итератор.

ARRAY FUNCTION SplitToArray
 STRING IN aValue
 STRING IN aDelim
 STRING VAR l_Tail
 aValue >>> l_Tail
 if ( l_Tail '' == ) then
 begin
  Result := [ '' ]
 end
 else
 begin
  Result := [
   while ( l_Tail '' != )
   begin
    l_Tail aDelim string:Split >>> l_Tail
   end
  ]
 end
; // SplitToArray

По примеру:

: string:Split:for>
  STRING IN aString
  STRING IN aSep
  ^ IN aLambda

 %SUMMARY 'Разделяет строку aString по разделителю aSep и для каждой части вызывает aLambda' ;

 while ( aString IsNil ! )
 begin
  aSep string:SplitTo! aString
  STRING VAR l_Part
  >>> l_Part
  if ( l_Part IsNil ! ) then
  begin
   l_Part aLambda DO
  end
 end
; // string:Split:for>

Комментариев нет:

Отправить комментарий