Показать сообщение отдельно
  #2  
Старый 08.02.2010, 19:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, если не гнаться за производительностью, то можно так:

Код:
function ProcessStr(S : String) : String;
var
  L : TStringList;
begin
  L := TStringList.Create;
  Try
    // Бъем по запятым
    L.Text := StringReplace(S,',',#13#10,[rfReplaceAll]);
    
    While L.Count > 9 Do L.Delete(L.Count-1); // Удаляем все, после 9ой
    L.Delete(1); L.Delete(1); // Удаляем 2 блока
    
    // Собираем результат
    Result := '';
    For I := 0 To L.Count-1 Do
      Begin
        If Result <> '' Then Result := Result + ', ';
        Result := Result + Trim(L[i]);
      End;
  Finally
    L.Free;
  End;
end;
Ответить с цитированием