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

Так тебе разобраться или за тебя написать?
В принципе, тебе нужны 2 функции: Copy и Pos. Первая копирует часть строки начиная с указанного символа и указанной длинны. Вторая - возвращает позицию указанной подстроки в переданной строке.
По сути, тебе надо разбить строку на слова по разделителю "запятая", а далее просто с помощью функции Length посмотреть длинну полученного слова.

Код:
procedure GetMaxMinWords(AStr : String; var MinLen, MaxLen : String);
var
  APos : Integer;
  Buf : String;
begin
  AMinLen := '';
  AMaxLen := '';
  APos := Pos(',',AStr);
  While Pos > 0 Do
    Begin
      Buf := Trim(Copy(AStr,1,APos-1);
      AStr := Copy(AStr,APos+1,Length(AStr)-APos+1);
      If Length(Buf) > Length(AMaxLen) Then AMaxLen := Buf;
      If Length(Buf) < Length(AMinLen) Then AMinLen := Buf;
    End;
  If AStr <> '' Then
    Begin
      If Length(AStr) > Length(AMaxLen) Then AMaxLen := AStr;
      If Length(AStr) < Length(AMinLen) Then AMinLen := AStr;
    End;
end;

Где-то так. Объяснять не буду - лень.
Ответить с цитированием