Так тебе разобраться или за тебя написать?
В принципе, тебе нужны 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;
Где-то так. Объяснять не буду - лень.