Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка в memo 
:(
    Опции темы
Фрося
Дата 12.1.2006, 13:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здрасвуйте
у меня в компоненте Memo строки вида "Номер + : + Номер"

выглядит так
Код


4:12
4:13
4:14
4:11
4:10
3:16
3:15
3:21
.....


числа в строках могут быть разные, но вид строки всегда: ( Num + Separator + Num ).

Мне нужно чтобы этот список сортировался в порядке возрастания. smile








  Вверх
Snowy
Дата 12.1.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

var
  sl: TStringList;
begin
  sl:=TStringList.Create;
  sl.Assign(Memo1.Lines);
  sl.Sort;
  Memo1.Lines.Assign(sl);
  sl.Free;
end;

PM MAIL   Вверх
Демо
Дата 12.1.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Snowy

Не получится. Придется использовать TStringList.CustomSort


--------------------
    
PM MAIL ICQ Skype   Вверх
Snowy
Дата 12.1.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Демо @ 12.1.2006, 18:21 Найти цитируемый пост)
Не получится. Придется использовать TStringList.CustomSort

Не получится, если строки разной длины - будет сортировать согласно алфавита.
Если одной длины, как в примере - то все нормально.
PM MAIL   Вверх
delphixxx
Дата 18.1.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.1.2006

Репутация: нет
Всего: нет



Snowy
Демо

Спасибо за ответы, но я совсем забыла, строки дейсвительно могут быть разной длинны, просто в примере я это не учитывала.

теперь такой пример:
Код

4:121
4:13
4:142
4:11
4:103
3:16
3:154
3:2


на всякий случай хочу сказать первая цифра до ':' только одна тоесть от 1 до 9 а после знака ':' максимум три минимум одна .


smile

PM MAIL   Вверх
Alexeis
Дата 18.1.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Код

function mysort(List: TStringList; Index1, Index2: Integer): Integer;
var
  i1, i2 : integer;
  s1, s2 : ansistring;
Begin
  s1 := List.Strings[Index1];
  s2 := List.Strings[Index2];
  if s1[1] > s2[1]
  then
    result := 1
  else
    if s1[1] < s2[1]
    then
      result := -1
    else
      Begin
        delete(s1,1,2);
        delete(s2,1,2);
        i1 := strtoint(s1);
        i2 := strtoint(s2);
        if i1 > i2
        then
          result := 1
        else
         if i1 < i2
         then
           result := -1
         else
           result := 0;
      end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var    
  sl: TStringList;    
begin    
  sl:=TStringList.Create;    
  sl.Assign(Memo1.Lines);    
  sl.CustomSort(mysort);
  Memo1.Lines.Assign(sl);
  sl.Free;
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.