Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отсортировать чиста в ListBox 
:(
    Опции темы
stat007
Дата 15.1.2010, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На форме есть ListBox1, в котором введены числа в Items и кнопка. 
Как сделать так, чтобы при нажатии на кнопку все числа в ListBox1 отсортировались. Сортировку нужно сделать с помощью алгоритма sort.

Это сообщение отредактировал(а) stat007 - 15.1.2010, 23:59
PM MAIL   Вверх
artsb
Дата 16.1.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

#include <vector>
#include <algorithm>
//...
bool m_comp(const AnsiString &f, const AnsiString &l) {
 int _f, _l;

 try {
  _f = f.ToInt();
 }
 catch(...) {
  return false;
 }

 try {
  _l = l.ToInt();
 }
 catch(...) {
  return true;
 }

 if(_l > _f)
  return true;

 return false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned short i;
std::vector<AnsiString> v;
for(i=0; i<ListBox1->Count; i++)
 v.push_back(ListBox1->Items->Strings[i]);

std::vector<AnsiString>::iterator b = v.begin(), e = v.end();

std::sort(b, e, m_comp);

ListBox1->Clear();
for(i=0; i<v.size(); i++)
 ListBox1->Items->Add(v[i]);
v.clear();
}

Сортирует по возрастанию целые числа. Если вдруг в список попали строки (мало ли), они окажутся в самом конце отсортированного списка в не отсортированном виде.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mrbrooks
Дата 16.1.2010, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



stat007, а чем не подходят стандартные средства билдера.
Код

#include <memory>
int __fastcall ListComp(TStringList *list, int item1, int item2)
{
    return list->Strings[item1].ToInt() - list->Strings[item2].ToInt();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::auto_ptr<TStringList>list(new TStringList());
list->Assign(ListBox1->Items);
list->CustomSort(ListComp);
ListBox1->Items->Clear();
ListBox1->Items->Assign(list.get());
}
//---------------------------------------------------------------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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