Форум: "Прочее";
Текущий архив: 2013.11.24;
Скачать: [xml.tar.bz2];
ВнизПро сортировочку Найти похожие ветки
← →
Rouse_ © (2013-06-01 14:18) [0]После вчерашнего мини ММР с украинскими коллегами, чей-то вдруг вдохновился и выдал :)
http://alexander-bagel.blogspot.ru/2013/06/windows.html
← →
Eraser © (2013-06-01 14:22) [1]http://msdn.microsoft.com/en-us/library/windows/desktop/bb759947(v=vs.85).aspx
оно? )
← →
Rouse_ © (2013-06-01 14:24) [2]Оно, только работает через одно место, собственно о чем и отписывается народ:
> Not always so logical
> If you have the names
>
> 0, 00, 000, 000_A, 000_B
>
> I expected it to be sorted
>
> 0
> 00
> 000
> 000_A
> 000_B
>
> But I get
>
> 000
> 000_A
> 000_B
> 00
> 0
← →
Eraser © (2013-06-01 14:26) [3]вот подлецы, наплодили функций в API, а сами ими не пользуются )
← →
Rouse_ © (2013-06-01 14:27) [4]ЗЫ: ну и на W2K, которую все еще саппортят, ес не ошибаюсь ее нет :)
← →
Rouse_ © (2013-06-01 14:28) [5]Надо кстати действительно дополнить статейку, а то будут еще пруфлинки давать :)
Пасип :)
← →
брат Птибурдукова (2013-06-01 14:31) [6]
> Rouse_ © (01.06.13 14:18)
Ну если был в Киеве и не предупредил, объявлю вендетту…
← →
Rouse_ © (2013-06-01 14:57) [7]
> Eraser © (01.06.13 14:26) [3]
Готово, кстати посмотри результат такой сортировки :)
> брат Птибурдукова (01.06.13 14:31) [6]
>
> > Rouse_ © (01.06.13 14:18)
> Ну если был в Киеве и не предупредил, объявлю вендетту…
Димч, ты чего? Я ж знаю что за такое мне сразу пожизненный эцих с гвоздями :)
Не, Пашка Голубь вчера приезжал просто :)
Народ собирали по сарафанному радио, решили глобальный сейшен не делать, ибо было чего на профтемы пообсуждать (за бабло трещали короче) :)
← →
Розалия Самойловна (2013-06-01 15:07) [8]
> Rouse_ © (01.06.13 14:18)
> После вчерашнего мини ММР с украинскими коллегами
Ты конечно этот пост сотрешь, и ветку закроешь...
Но, по-моему, ты так обрадовался встрече с украинскими коллегами, что сильно навстречался...
Предложенный тобой тип сортировки имеет только узкоспециализированное, боюсь что только для этого примера, применение.
Главный недостаток - то что предполагается нужность такого типа сортировки. При этом учитывается только цифровые десятичные значения.
Получается, что ты разбиваешь строку на две сущности, одна из которых число - но для тех областей где это необходимо, эти сущности и так разделены и нормально сортируются при помощиORDER BY f1 f2
с последующим, при необходимости, соединением строк при выводе.
Т.е. для общего случая сортировка Windows более правильная.
← →
Rouse_ © (2013-06-01 15:11) [9]
> Ты конечно этот пост сотрешь, и ветку закроешь...
Почему?
> Предложенный тобой тип сортировки имеет только узкоспециализированное,
> боюсь что только для этого примера, применение.
Да это вообще можно сказать не сортировка, это просто воспроизведение аналогичной сортировки из проводника :)
> Получается, что ты разбиваешь строку на две сущности, одна
> из которых число - но для тех областей где это необходимо,
> эти сущности и так разделены и нормально сортируются при
> помощи ORDER BY f1 f2 с последующим, при необходимости,
> соединением строк при выводе.
А вот это не понял, это ты про базы уже говоришь?
> Т.е. для общего случая сортировка Windows более правильная.
И этого тоже не понял, сортировка Windows это что?
Имеется ввиду lstrcmp?
← →
Eraser © (2013-06-01 15:12) [10]
> Rouse_ © (01.06.13 14:57) [7]
да уж ) результат StrCmpLogicalW, мягко скажем, странный.
вообще за функцию спасибо, ей применение найдется, вот только опять этот Делфи 7 без юникода ))
← →
Rouse_ © (2013-06-01 15:14) [11]Работает и на Delphi7 и на Юникодных Delhi 2009 и выше (она сначала на них и писалась под задачу, это я уже потом причесал чтоб под семеркой собралась :)
← →
Eraser © (2013-06-01 15:23) [12]нашел ошибку в вызове StrCmpLogicalW.
вместо
Result := StrCmpLogicalW(@S1, @S2);
нужно вот такResult := StrCmpLogicalW(PChar(S1), PChar(S2));
← →
Eraser © (2013-06-01 15:25) [13]
> Eraser © (01.06.13 15:23) [12]
результат аналогичен твой функции на прошитом наборе данных. (win 8).
← →
Rouse_ © (2013-06-01 15:26) [14]
> Eraser © (01.06.13 15:23) [12]
> нашел ошибку в вызове StrCmpLogicalW.
Вах, во я прошляпил...
Правлю...
← →
Розалия Самойловна (2013-06-01 15:28) [15]
> И этого тоже не понял, сортировка Windows это что?
Это default сортировка Проводника Windows.
> А вот это не понял, это ты про базы уже говоришь?
Не совсем так. Я говорю о том, что там где нужен твой тип сортировки уже давно применяются сортировка a-la сортировки БД.
Вот продемонстрирую на таком примере.
Ты считаешь что сортировка вида:
1a1
1a2
1a100
правильная.
Но правильная она будет только лишь в том случае, когда 1-2-100 это порядковые числа.
Но когда это другая сущность, например номер версии или ответвления, и запись вида 100 значит 1-0-0 (версия 1 подверсия 0-0) то будет правильной именно:
1a1
1a100
1a2
Т.е. не зная истинного значения сортируемой строки сортировать нету смыла.
А твой вид сортировки "как-бы-налету" придумывает слысл для строчки.
← →
Rouse_ © (2013-06-01 15:34) [16]
> Это default сортировка Проводника Windows.
Так я ее и воспроизвожу.
> Но когда это другая сущность, например номер версии или
> ответвления, и запись вида 100 значит 1-0-0 (версия 1 подверсия
> 0-0) то будет правильной именно:
Понял о чем ты.
Согласен на все 100, но!!!
Но тут я как раз о сортировке проводника и рассказываю, как о украшательстве.
Понятно что применять ее повсеместно будет категорической ошибкой.
← →
Розалия Самойловна (2013-06-01 15:43) [17]Удалено модератором
← →
Rouse_ © (2013-06-01 15:51) [18]
> Rouse_ © (01.06.13 15:26) [14]
Готово, кстати благодаря тебе выцепил ошибку с числами состоящими из множества нулей. Респект :)
> Розалия Самойловна (01.06.13 15:43) [17]
> А если это не число, а код, как в моем примере ? Почему
> какая-то программа должна решать за меня ?
Тут видишь в чем дело, какая-то там программа за тебя ничего решить не может, ибо этот алгоритм должен быть применен разработчиком этой программы.
И вот вопрос, зачем он его применил не в том месте где надо, нужно задавать непосредственно разработчику, а не мне :)
Ну а за картинку твой пост придется грохнуть, увы...
← →
Розалия Самойловна (2013-06-01 15:55) [19]
> Ну а за картинку твой пост придется грохнуть, увы...
Так давно уже говориться - приделайте к функционалу тег <spoiler> - как раз для таким моментов ;)
← →
Rouse_ © (2013-06-01 15:57) [20]Ну это-ж не ко мне...
← →
Юрий Зотов © (2013-06-01 16:00) [21]
> Розалия Самойловна (01.06.13 15:43) [17]
Дык... Розыч ведь так и сразу написал, что это бантик. И ежу понятно, что способ сортировки может зависеть от контекста. Не зря же всякие там CustomSort придуманы - пишем свой компаратор, и все ОК.
PS
А Лева шикарный...
:o)
← →
брат Птибурдукова (2013-06-01 16:37) [22]
> Rouse_ © (01.06.13 14:57) [7]
Печален я и скорбен головою во времена оны, когда по субботам отрабатывать приходится. Не сразу доходит, что в «ММП» М означает Москву.
← →
Rouse_ © (2013-06-01 16:45) [23]
> брат Птибурдукова (01.06.13 16:37) [22]
> Печален я и скорбен головою во времена
Во ты выдал :)
← →
turbouser © (2013-06-01 18:12) [24]
>
> Rouse_ © (01.06.13 14:18)
>
> После вчерашнего мини ММР
А где доклад и фотки?
← →
Rouse_ © (2013-06-01 18:33) [25]
> turbouser © (01.06.13 18:12) [24]
> А где доклад и фотки?
Доклада не будет (собрались, погудели, разошлись - че там описывать-то?), фотки готовлю (но блин лениво сильно).
Сегодня вечером или завтра днем выложу на http:/mmp.flat-design.ru
← →
robt5 (2013-06-01 20:09) [26]как насчот кто быстрей ? твоя или виндовая?
← →
Rouse_ © (2013-06-01 21:06) [27]
> robt5 (01.06.13 20:09) [26]
> как насчот кто быстрей ? твоя или виндовая?
Хм, честно говоря не проверял. Моя реаллоков не использует (за исключением приведения к нижнему регистру) а дальше банальный курсор.
Я свой вариант делал, опираясь на родную реализацию CompareString, правда не стал заморачиваться с разворачиванием циклов.
Думаю если и медленнее, то на какие-то копейки...
← →
Юрий Зотов © (2013-06-01 21:09) [28]> брат Птибурдукова (01.06.13 16:37) [22]
Печален я и скорбен головою,
И на луну по вечерам я вою...
:o)
← →
Rouse_ © (2013-06-01 21:17) [29]
> robt5 (01.06.13 20:09) [26]
> как насчот кто быстрей ? твоя или виндовая?
Ан нет, проверил, моя существенно медленней...
← →
robt5 (2013-06-02 18:24) [30]
> Rouse_ © (01.06.13 21:17) [29]
нафига там CharInSet функцией сделано? этож бред
← →
antonn © (2013-06-02 19:56) [31]
> Понял о чем ты.
> Согласен на все 100, но!!!
> Но тут я как раз о сортировке проводника и рассказываю,
> как о украшательстве.
ну как сказать, я наоборот везде где сортирую строки пытаюсь эту "виндовую сортировку" сделать
← →
Rouse_ © (2013-06-02 20:25) [32]
> нафига там CharInSet функцией сделано?
Код изначально писался на D2010, там используется именно функция, в противном случае будет Warning
← →
Jeer © (2013-06-02 23:29) [33]"Отшумели винты навсегда, навсегда.."
P.S.
Да я до сих пор на D7 и хрен меня оттуда сковырнешь:)
← →
robt5 (2013-06-03 09:43) [34]
> Rouse_ © (02.06.13 20:25) [32]
использование подобных "функций" это удел батонокидателей
должно быть чистое логическое условие ( c > "/" ) and ( c < ":" ), без всяких множеств
кроме того основной тормоз тут скорей всего это AnsiLowerCase ибо неправильно используется
+можно еще пару оптимизаций алгоритмических применить
вот тогда будет норм
← →
brother © (2013-06-03 09:54) [35]> это AnsiLowerCase
как тогда приводить к нижнему регисру быстрее?
← →
antonn © (2013-06-03 10:52) [36]можно хранить копию строки в нижнем регистре чтобы постоянно не использовать функцию
← →
Дмитрий СС (2013-06-03 11:21) [37]Простите за оффтопик, может кто-то знает как сделать в проводнике, чтобы сортировка по дате выдавала файлы и папки вперемешку, а не сначала папки, потом файлы?
← →
antonn © (2013-06-03 11:54) [38]
> Простите за оффтопик, может кто-то знает как сделать в проводнике,
> чтобы сортировка по дате выдавала файлы и папки вперемешку,
> а не сначала папки, потом файлы?
в каком проводнике? у меня в Вин7 (и 2008 сервер) как раз такая сортировка, как бы ее отключить... а на ХР папки и файлы отдельно
← →
Sha © (2013-06-03 11:58) [39]> Rouse_
Нулевое значение - это частный случай лидирующих нулей, хорошо бы их тоже обрабатывать.
1
01
001
0001
00001
...
← →
Дмитрий СС (2013-06-03 12:02) [40]
> в каком проводнике? у меня в Вин7 (и 2008 сервер) как раз
> такая сортировка, как бы ее отключить... а на ХР папки и
> файлы отдельно
И у меня win7, а можешь скриншот прислать?
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2013.11.24;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.003 c