Показать сообщение отдельно
Старый 14.09.2011, 09:04   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2480 (88) +++++++++
Регистрация: 20.08.2005
В трешке при сравнении строк используется String sort, а в 2009-й (и в четверке, по-видимому) Word sort

В сортировке символов все нецифро-буквенные символы имеют меньшее значение, чем любая цифра или буква и оказываются всегда впереди

В сортировке слов апостроф и дефис сортируются так, что-бы одинаковые слова, разделенные ими, стояли рядом. Т.е. при сравнении рассмотривается не только сам этот символ, но и следующие за ним
По-этому, '12' > '1-1', а '10' < '1-1'.
Что касается сравнения '11' и '1-1', то тут уже, по-моему, имеет значение так же длина строки. Т.е. '11' < '1-1'. Эксперименты с различными кодировками (включая китайские, арабские и японские) не влияли на результаты сравнения
А вот сравнение '11-' и '1-1' выявило разные результаты (причем и для трешки и для 2009-й) на WinXP ('11-' > '1-1') и на Win7/2008R2 ('11-' < '1-1') для одной и той же кодировки. Тут либо разная реализация функций сравнения в разных версиях винды, либо разные настройки локалей
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: sukhanchik (4), Logger (5), gl00mie (5).