Через тернии к звездам!

На пыльных тропинках далеких планет останутся наши следы!

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Главная страница Автор Дельфи Пользовательская сортировка StringList

Пользовательская сортировка StringList

E-mail Печать PDF

Задача отсортировать именно массив или то что в memo?
Если это не академическая задача и способ не важен, то ещё один способ - обратиться к родительским методам. Я обычно до TList спускаюсь, но можно и так:
Код:


function StringListCompareLengtnStrings(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := length(List.Strings[Index1]) - length(List.Strings[Index2]);
//результат (точнее знак +-) используется в быстрой сортировке
//Чтобы понять что да как, можно глянуть в модуль Classes на процедуру
//procedure TStringList.QuickSort(L, R: Integer; SCompare: TStringListSortCompare);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a: TStringList;
begin
a := TStringList.Create;
a.Assign(memo1.Lines);
a.CustomSort(@StringListCompareLengtnStrings);//пользовательская сортировка
memo1.Lines.Assign(a);
showmessage('следующая сортировка');
a.Assign(memo1.Lines);
a.Sort;//стандартная сортировка по алфавиту
memo1.Lines.Assign(a);
a.Destroy;
end;

 
Интересная статья? Поделись ей с другими:

Добавить комментарий

Обои рабочего стола

Борис Валеджио

Красиво

Фото-Приколы

Фото-Забавные животные

Рекомендую

Рекомендую

Глобально

Великая Отечественная

История

Оружие

Познавательно

Юмор

Прочее

Война

Оружие


Свежие записи

Счетчики

Яндекс.Метрика