Имя: Пароль:
1C
1С v8
Чем руководствуется одинэсина когда сравнивает числовые строки?
0 Artur Mirodyanov
 
07.11.13
13:50
Если сравнивать значения строк в которых числа , то одинэсина вроде сравниваеи правильно, это до 10 я смотрю... дальше не смотрел. Вот вопрос как она допустим строки "4" и "6" сравнив выдает, что чтрока "4" меньше строки"6". Вроде все верно, вопрос чем она руководствуется и по какому правилу это выводит свой результат?  спасибо
1 GROOVY
 
07.11.13
13:50
Как и любая другая программа по коду символа.
2 ДенисЧ
 
07.11.13
13:51
по таблице кодов символов
3 exwill
 
07.11.13
13:52
(0) А чем руководствуются составители словарей?
4 Artur Mirodyanov
 
07.11.13
13:53
(1), (2) понял по ASCI.
(3), по алфавиту в букваре).
5 Artur Mirodyanov
 
07.11.13
13:53
Спасибо
6 GROOVY
 
07.11.13
13:53
UTF-8
7 skunk
 
07.11.13
13:54
вот и выросло поколение программистов, которое не знает как программы сравнивают строки
8 Волшебник
 
модератор
07.11.13
13:54
почему КодСимвола("Е") = 1045, а КодСимвола("Ё") = 1025 ?
почему Ё < Е, хотя по алфавиту Ё идёт после Е?
9 H A D G E H O G s
 
07.11.13
13:54
(6) Монопенисуально для цифер.
10 Зойч
 
07.11.13
13:56
(8) Unicode sorting rules are much more complex than the rules for a non-Unicode SQL sort order
http://support.microsoft.com/kb/322112
11 mistеr
 
07.11.13
13:56
>до 10 я смотрю... дальше не смотрел

Это 5!
12 GROOVY
 
07.11.13
13:56
(8) Это происки госдепа, хотят кириллицу истребить.
(9) 8рка работает с UTF-8, хоть циферы хоть буквы.
13 catena
 
07.11.13
13:59
(0)А "10" меньше "2"...
14 skunk
 
07.11.13
14:00
(8)Ё > Е
15 Ненавижу 1С
 
гуру
07.11.13
14:03
(8) таковы правила локальной (для каждого языка) сортировки
wiki:Ё#.D0.A1.D0.BE.D1.80.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0
16 Ненавижу 1С
 
гуру
07.11.13
14:04
(14) там всЁ сложнее
17 aka AMIGO
 
07.11.13
14:17
168  Ё
184  ё
197  Е
229  е

вот так в 1С сортируется посимвольно ТЗ с этими кодами, т.е. в полном соответствии с кодовой страницей, по кодам символов.

    ТЗс = СоздатьОбъект("ТаблицаЗначений");
    ТЗС.НоваяКолонка("Код");
    ТЗС.НоваяКолонка("Буква");
    ТЗС.Сортировать("Буква");

сортировка задана в виде ТЗС.Сортировать("Буква");

такой-же порядок сохранится в сортировке строк, имеющих эти буквы
18 aka AMIGO
 
07.11.13
14:22
пример. Подставлены вторые буквы, с намерением сбить сортировку под них
вот результат:
168  Ёя
184  ёя
197  Еа
229  еа

т.е. опять в порядке первых букв
19 Ненавижу 1С
 
гуру
07.11.13
14:23
(18) в 7.7 не юникод, так что не интересно, в 8.х правильно
20 aka AMIGO
 
07.11.13
14:24
(19) угу, +100
21 catena
 
07.11.13
14:42
А еще так


Запрос = Новый Запрос("Выбрать ""?б"" как поле
|объединить все
|Выбрать ""Ба"" как поле
|объединить все
|Выбрать ""Ад"" как поле
|Упорядочить по поле возр");
Рез = Запрос.Выполнить().Выбрать();
Пока Рез.Следующий() Цикл
    Сообщить(""+Рез.Поле+" "+КодСимвола(Лев(Рез.Поле,1)));
КОнецЦикла;    


Результат:

Ад 1 040
?б 1 240
Ба 1 041
22 catena
 
07.11.13
14:44
Хех :) Вместо "?" вот эта буква: wiki:%D3%98
23 katc
 
07.11.13
14:48
(0) с числовыми строками все просто, а вот как быть со строковыми числами
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.