Показать сообщение отдельно
  #2  
Старый 24.02.2010, 17:15
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

можно так (примитивно, делал лет 7 назад) (comma - разделитель, тоесть если надо по переносу строки, то разделитель будет #13)
Код:
function GetWords(comma,s: string): TStrings;
  function GetComma(comm,j: string): string;
  var
    a,p: integer;
    r,outstr: string;
  begin
    r := j;
    if r[1] = comma then Delete(r,1,1);
    p := Pos(comma,r);
    for a:=1 to p-1 do
    begin
      outstr := outstr + r[a];
    end;
  Result := outstr;
  end;
var
  l: string;
  a,f,b,z: integer;
begin
  b := 0;
  z := 0;
 
  l := s + comma;
  for f:=1 to Length(l) do
  begin
    if l[f] = comma then b := b + 1;
  end;

  while z < b do
  begin
    a := Pos(comma,l);
    Result.Add(GetComma(comma,l));
    Delete(l,1,a);
    Inc(z);
  end;
end;

а можно воспользоваться функцией WrapText (описание тут):
пример стопицот летней давности:
Код:
function WrapWords(s: string): string;
var
  a: integer;
  d: string;
begin
  d := WrapText(s, #13#10, ['.',' ',#9,'-'], 1);
  for a:=1 to Length(d) do
  begin
    if d[a] = ' ' then Delete(d,a,1);
  end;
Result := d;
end;
Ответить с цитированием