Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2008, 12:10   #1
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию сортировка в Memo

скажите пожалуйста как сортировать линии в поле мемо по алфавиту?
tiger вне форума Ответить с цитированием
Старый 24.06.2008, 12:34   #2
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Просто рассматриваешь TMemo как одномерный массив.
Код:
procedure tform1.BinSort(L,R:longint);
var
i,j:longint;
buf,el:string;
begin
 i:=l;
 j:=r;
 el:= memo1.Lines.Strings[(l+r) div 2];
 while i<=j do
  begin
   while memo1.Lines.Strings[i]<el do
    inc(i);
    while memo1.Lines.Strings[j]>el do
     dec(j);
    if i<=j then
     begin
      buf:=memo1.Lines.Strings[i];
      memo1.Lines.Strings[i]:=memo1.Lines.Strings[j];
      memo1.Lines.Strings[j]:=buf;
      inc(i);
      dec(j);
     end;
  end;
  if l<j then
   BinSort(l,j);
  if i<r then
   BinSort(i,r);
end;
Не уверен, что самый быстрый способ, но он работает)
Пример использования:
binsort(0,memo1.Lines.count-1);
NikLik вне форума Ответить с цитированием
Старый 24.06.2008, 17:12   #3
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Еще вариант
Код:
var
  Lines: TStringList;
begin
  Lines:=TStringList.Create;
  Lines.AddStrings(Memo1.Lines);
  Lines.Sort;
  Memo1.Lines:=Lines;
  Lines.Free;
end;
_Dmitry вне форума Ответить с цитированием
Старый 25.06.2008, 01:49   #4
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию

спасибо всем огромное! вопрос решен! безусловно второй вариант поэкономнее будет. первый и правда не самый быстрый
tiger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Memo Kocapb Общие вопросы C/C++ 2 17.01.2008 02:06
Memo MAcK Общие вопросы Delphi 1 02.10.2007 17:14
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40