Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Преобразование строки с разделителями в StringList.
Преобразование строки с разделителями в StringList или наследник TStrings. Навеяно одноименной процедурой из InfoPower :-)
Зависимости: Classes Автор: Игорь Шевченко, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., Москва Copyright: Игорь Шевченко, Woll2Woll software (original) Дата: 30 апреля 2002 г. ***************************************************** }
procedure StrBreakApart(const S, Delimeter: string; Parts: TStrings); var CurPos: integer; CurStr: string; begin Parts.clear; Parts.BeginUpdate(); try CurStr := S; repeat CurPos := Pos(Delimeter, CurStr); if (CurPos > 0) then begin Parts.Add(Copy(CurStr, 1, Pred(CurPos))); CurStr := Copy(CurStr, CurPos + Length(Delimeter), Length(CurStr) - CurPos - Length(Delimeter) + 1); end else Parts.Add(CurStr); until CurPos = 0; finally Parts.EndUpdate(); end; end; Пример использования:
var Tmp: StringList; begin Tmp := TStringList.Create(); StrBreakApart('Text1<BR>Text2<BR>Text3<BR>Text4', '<BR>', Tmp); // После вызова Tmp содержит // Text1 // Text2 // Text3 // Text4 ... Tmp.Free(); end; |
Можно сделать значительно проще:
Code: |
procedure StrBreakApart(const S, Delimeter: string; Parts: TStrings); {©Drkb v.3(2007): www.drkb.ru, ®Vit (Vitaly Nevzorov) - Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.} begin Parts.text:=StringReplace(S, Delimeter, #13#10, [rfReplaceAll, rfIgnoreCase]); end; |
Автор:Vit
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!