|
Вопрос # 5 533/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
У меня есть на форме компонент TListBox, в нем уже есть заполененные строки цифрами надо найти 5 строк у которых значения цифр будут больше остальных
 |
Вопрос задал: F.@.E.R (статус: 1-ый класс)
Вопрос отправлен: 28 июля 2011, 15:10
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 16; последнее сообщение — 28 июля 2011, 16:37; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 28 июля 2011, 15:25 [#1]:
Откуда такая задача? Она учебная или прикладная? Для чего нужно искать такие 5 строк и почему именно 5?
Может быть стоит отсортировать строки для начала?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 15:35 [#2]:
Отсортировать и взять 5 первых. Это по ходу "топ 5" такой.
Чисти код! Чисти код! Чисти код!
|
|
F.@.E.R (статус: 1-ый класс), 28 июля 2011, 15:43 [#3]:
Показывает активных пользователей, TListBox, у меня храняться количество сообщений каждого пользователя
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 15:51 [#4]:
Нужно узнать номер тех записей, в которых наибольшее число сообщений?
Чисти код! Чисти код! Чисти код!
|
|
min@y™ (статус: Доктор наук), 28 июля 2011, 15:52 [#5]:
Цитата (F.@.E.R):
TListBox, у меня храняться количество сообщений каждого пользователя
Не надо ничего хранить в визуальных компонентах! Храни список в памяти, сортируй его, делай с ним всё, что душе угодно. А TListBox пусть этот список ТОЛЬКО ОТОБРАЖАЕТ. А ещё лучше вместо TListBox используй TListView в режиме vsReport.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
F.@.E.R (статус: 1-ый класс), 28 июля 2011, 15:56 [#6]:
А как мне отсортировать ?
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 15:58 [#7]:
У него хранятся юзеры и их сообщения в 2 разных ListBox.
И он по номеру определяет какое имя какому количеству сообщений соответствует. Сортировать нужно сразу и то и то. Либо (правильно) делать свою структуру данных - массив записей
TUser = record
Name: String;
Messages: Integer;
end;
Чисти код! Чисти код! Чисти код!
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 16:00 [#8]:
А ещё лучше написать класс для такой структуры. Наследок от любого списка. Можно ассоциативный массив сделать, я где-то показывал как.
Чисти код! Чисти код! Чисти код!
|
|
min@y™ (статус: Доктор наук), 28 июля 2011, 16:02 [#9]:
Цитата (Gooddy):
У него хранятся юзеры и их сообщения в 2 разных ListBox.
Нахрена такой брейнфакинг?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 16:10 [#10]:
Сам подумай. Раз у него сообщения юзверей хранятся в TListBox, где хранятся имена юзверей? В array of integer не иначе.
Чисти код! Чисти код! Чисти код!
|
|
Вадим К (статус: Академик), 28 июля 2011, 16:13 [#11]:
имена в integer? сильно!
Галочка "подтверждения прочтения" - вселенское зло.
|
|
F.@.E.R (статус: 1-ый класс), 28 июля 2011, 16:16 [#12]:
Так подскажите мне алгоритм сортировки
|
|
Вадим К (статус: Академик), 28 июля 2011, 16:19 [#13]:
алгоритмы сортировки известны - например сортировка пузырьком
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 28 июля 2011, 16:24 [#14]:
Цитата (F.@.E.R):
Так подскажите мне алгоритм сортировки
Да нафига он тебе? Всё уже написано создателями Delphi, надо только уметь этим пользоваться.
Для хранения инфы по каждому юзеру пиши класс:
TUser = class
private
FName: string;
FMessageCount: DWORD;
public
property ...
property ...
end;
Для хранения списка юзеров бери готовый класс-список TObjectList. В нём уже есть сортировка, нужно только написать функцию сравнения двух юзеров, которая возвращает только 3 значения: -1 (меньше), 0 (равно), +1 (больше). Эту функцию подсовывать методу TObjectList.Soft.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
F.@.E.R (статус: 1-ый класс), 28 июля 2011, 16:31 [#15]:
Ладно разберусь как - нибудь сам.
|
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 16:37 [#16]:
Тут привели алгоритм сортировки (Вадим К.) и несколько вариантов правильных структур для таких данных (я и min@ytm).
А разберёшься ты, конечно, сам.
Чисти код! Чисти код! Чисти код!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|