![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2009
Сообщений: 8
|
Вот столкнулся с такой проблемой. Выбираю из БД список фамилий на украинском языке и фамилии начинающиеся на буквы отсутствующие в русском (і, є, ї) становятся в начале списка (перед а). При чем порядок нарушен как при выборе из БД с помощью ПХП, так и при сортировке в DataGrid.
Может кто знает как решить проблему или хотя бы в каком направлении копать. |
|
|||||
|
Напиши свою функцию сортировки для column с фамилией.
sortCompareFunction
__________________
2+2=5 |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 8
|
Спасибо за подсказку. Изучу пример, если получится результат выложу, думаю еще кому-нибудь пригодится.
Добавлено через 1 час 21 минуту Я в программировании новичек. Не подскажете где можно подсмотреть пример алгоритма сортировки по алфавиту? |
|
|||||
|
Modus ponens
|
В качестве примера:
const LOWER:String = "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя"; const UPPER:String = "АБВГҐДЕЄЖЗИIЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"; function sortUkr(a:String, b:String):int { var i:int = Math.min(a.length, b.length); var j:int; var ai:int; var bi:int; var ca:String; var cb:String; var isUpper:Boolean; while (j < i) { ca = a.charAt(j); cb = b.charAt(j); ai = Math.max(LOWER.indexOf(ca), UPPER.indexOf(ca)); bi = Math.max(LOWER.indexOf(cb), UPPER.indexOf(cb)); if (ai < bi) return -1; else if (ai > bi) return 1; j++; } if (a.length < b.length) return -1; else if (a.length > b.length) return 1; return 0; } var arr:Array = []; var i:int = 10; var j:int; var s:String; while (i--) { j = 1 + Math.random() * 10; s = ""; while (j--) { if (Math.random() > 0.49) { s += LOWER.charAt((Math.random() * LOWER.length) >> 0); } else { s += UPPER.charAt((Math.random() * UPPER.length) >> 0); } } arr.push(s); } trace(arr.join("\r")); trace("-------------------"); arr = arr.sort(sortUkr); trace(arr.join("\r"));
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|