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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 16:31   #1
devidart
Новичок
Джуниор
 
Регистрация: 22.04.2009
Сообщений: 1
По умолчанию Сортировка таблици

Все привет!
Подскажите как лучше сделать:

Есть такстовый файл - результат экспорта из Excel, фактически - матрица.
На форме есть грид.
Нужно заполнить этот грид строками из файла, но в правильной сортировке: сначала цифры по возрастанию, потом буквы по алфавиту и т.д.
Так же, если значения в первом столбще совпадают, то строки должны быть отсортированы по второму столбцу и т.д.

Писать вручную сортировку - как-то не айс, может кто подскажет класс, с помощью которого можно это легко провернуть?

Пробовал стринглистом, но он неправильно сортирует по цифрам, например 10 у меня выше, чем 3.

Пробовал в дельфях запихать данные обратно в Excel и провести сортировку, но опять же непонятно, как сделать сортировку по второму, третьему и т.д. столбцам.

На VBA это выглядело так:

Код:
Range("A1:C18").Select
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Add Key:=Range("A1:A18"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Add Key:=Range("B1:B18"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Add Key:=Range("C1:C18"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ëèñò1").Sort
        .SetRange Range("A1:C18")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Но в дельфях не знаю, как добавлять уровни сортировки.


А вообще, хотелось бы это сделать без использования Excel - это очень крайний вариант.

Заранее спасибо!
devidart вне форума Ответить с цитированием
Старый 23.04.2009, 12:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кидай данные в Грид а потом сам грид сортируй.
Все это описано на Delphi World
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
SQL запрос на подсчет суммы неотрицательных чисел таблици бд xxxsas SQL, базы данных 2 05.02.2009 23:40
Создание таблици рекордов? RAVAL)) Общие вопросы Delphi 4 07.11.2008 18:51
Копирования строк из одной таблици в другую Andersen Microsoft Office Access 6 13.08.2008 10:46
Загрузка таблици Divers85 Помощь студентам 5 27.10.2007 11:05