Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 301

/ вопрос открыт /

Здравствуйте!Помогите пожалуйста с двойной сортировкой
StringGrid. Попрбую поподробней объяснить ситуацию. Имеются несколько многоканальных изделий. Допустим назовём их абонент№1,абонент№2,абонент№3 ну и т.д, а у них у каждого каналы канал№1,канал№2,канал№3 ну и так далее(т.е что у абонент№1,абонент№2,абонент№3 без разницы каналы называются одинаково).Так же имеется изделие регистрирующее параметры в каналах этих изделий. Результаты регистрации по времени заносятся в
StringGrid.
|Время|№абонента|№канала|Параметр1|Параметр2|и т.д
Мне надо отсортировать по №абонента,а в каждом абоненте и по №канала. Всё это в одной таблице.

GAZ Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 30 января 2008, 18:49
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, GAZ!
Вы работаете с БД или это просто StringGrid?
Если с БД - то проблем вообще никаких нет - сортируете сначала по абоненту, затем по каналу. Если это BDE нужно создать индексы для этих полей и добавить их в список IndexDefs компонента TTable. Или, если работаете через SQL/TQuery перечислить эти два поля в параметре ORDER BY запроса.

Если же это просто данные в таблице, то также никаких проблем нет, нужно только провести двойную сортировку, т.е. сортировать можно по разному, но если данных не слишком много подойдет простой "метод пузырька", т.е. последовательно берем одну запись, проходимся по всем остальным, определяя ту, где столбей сортировки меньше (строковой сравнение) или больше, в зависимости от порядка сортировки, зятем меняем две записи местами и повторяем эту опреацию n^2 раз. Потом сортирует также внутри каждой группы уже по второму столбцу.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 31 января 2008, 03:34


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 31 января 2008, 07:34; участников в обсуждении: 2.
Николай Рубан

Николай Рубан (статус: 10-ый класс), 31 января 2008, 00:11 [#1]:

Рекоменжую создать простенькую базу данных, состоящую из одной таблицы. А ее отсотртировать по нужным полям думаю не составит большого труда...
GAZ

GAZ (статус: Посетитель), 31 января 2008, 07:34 [#2]:

Матвеев Игорь Владимирович
Данных много в том то и дело,поэтому и попросил помощи. Сортировку по абоненту я делаю,а вот как в ней ещё по номеру канала - киньте пример.
Николай Рубан
Программа уже была написана, она нужна для работы. Пока я на БД только её переделываю.На это време пусть будет сортировка в StringGrid.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 октября 2017, 23:39
Выполнено за 0.06 сек.
Рейтинг@Mail.ru