Сортировка цифр в поле String

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
yuriy
Посетитель
Сообщения: 42
Зарегистрирован: 24 Август 2005, 3:54

Сортировка цифр в поле String

Сообщение yuriy »

Доброе время суток

Clarion 5.5 В файле DAT есть поле объявленное как String
в нём будет храниться информация о пунктах плана например:
1.1
1.2
1.3
1.4
Пока уровня всего 2 сортировка работает корректно, если добавляется 3 уровень то сортировка сбивается

1.1.1
1.1.10
1.1.11
1.1.2
1.1.3
1.1.4

Подскажите пожалуйста можно ли это исправить?

С уважением
Юрий
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

Сортировка цифр в поле String

Сообщение vd-vuf »

сортировку не исправить, и в 2 уровнях она тоже слетит как только появятся значения десятков и более.
можно поправить ситуацию если форматировать числа, заранее определившись с рязрядностью уровней
то есть, к примеру, по 2 разряда на 2й и 3й уровень.
1.1.1 --> 1.01.01
1.1.2 --> 1.01.02
1.1.10 --> 1.01.10
1.1.11 --> 1.01.11
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

Сортировку вы конечно же исправить не сможете, да она здесь и не виновата.
И, если ничего не менять в таблице, то ничего не получится.
Надо либо прибегнуть к тому, что сказал вам vd-vuf,
либо, если это смотрится как-то не хорошо,
такое поле иметь скрытым и не отображать его на экране, но после каждой модификации основного поля осуществлять его вычисление и сохранение, сделать по нему ключ и по нему-то сортировать записи. И, если это поле будет скрытым, то фантазия может разыграться, и вы сможете под каждый уровень отвести не по два, а по три, а ещё лучше четыре разряда.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сортировка цифр в поле String

Сообщение kreator »

Shur писал(а):Надо либо прибегнуть к тому, что сказал вам vd-vuf,
либо, если это смотрится как-то не хорошо,
такое поле иметь скрытым и не отображать его на экране, но после каждой модификации основного поля осуществлять его вычисление и сохранение, сделать по нему ключ и по нему-то сортировать записи. И, если это поле будет скрытым, то фантазия может разыграться, и вы сможете под каждый уровень отвести не по два, а по три, а ещё лучше четыре разряда.
А какое поле? Тоже стринговое? Только с другим форматированием?
На мой взгляд, здесь классическое дерево по одной таблице. Вариант - либо вести её как дерево. Либо иметь поля Long для каждого уровня, сортировать по этим полям. а для удобства заполнять их вскрытую, делая разбор строки в момент записи.
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

kreator писал(а): Либо иметь поля Long для каждого уровня, сортировать по этим полям.
Так не очень -- ты сразу ограничиваешь себя этим количеством уровней. Плюс имеешь головняк с перенумерацией, если нужно что-то вставить в середину.
kreator писал(а): Тоже стринговое? Только с другим форматированием?
Да, я бы завёл так. Назовём его скрытое стринговое поле с разрядным форматированием.
kreator писал(а): Вариант - либо вести её как дерево.
Понятно, что это иерархия. Понятно, что по одной таблице. Но список как-то легче построить, отсортировав по полю, нежели рекурсивно искать сыновей-родителей.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Сортировка цифр в поле String

Сообщение Губин Игорь »

Sort(queue,function)

Или ввести в файл некое числовое поле, в которое будет ПРАВИЛЬНО записываться индекс
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сортировка цифр в поле String

Сообщение kreator »

Shur писал(а):Да, я бы завёл так. Назовём его скрытое стринговое поле с разрядным форматированием.
В принципе, да. Заложиться на 4 разряда, к примеру. Кстати, и буквенные индексы должны прокатить.
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

Губин Игорь писал(а): Sort(queue,function)
По условию задачи имеем файл данных и С55.
А это сортировка очереди, а не таблицы.
Так что не прокатит.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сортировка цифр в поле String

Сообщение Admin »

Shur писал(а): А это сортировка очереди, а не таблицы.
Любые таблицы отображаются в бровзе через очередь.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

Admin писал(а): Любые таблицы отображаются в бровзе через очередь.
Даже не спорю. В любом случае в C55 этой фичи не было.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сортировка цифр в поле String

Сообщение kreator »

Shur писал(а):В любом случае в C55 этой фичи не было.
Эта "фича" изначально существует. Другое дело, может неудобно с этим работать (надо выкачивать весь набор и т.д.). Да и вот это - "Sort(queue,function)", что-то не человеческое. Вот если бы в Order (prop:Order) можно было чего загнать.
We are hard at work… for you. :)
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Сортировка цифр в поле String

Сообщение Губин Игорь »

kreator писал(а): Вот если бы в Order (prop:Order) можно было чего загнать.
Загнать можно: клаколсек
Вопрос только в том, что он действует на всё, а не только на конкретный файл
Это я только кажусь дураком! На самом деле я полный идиот!
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

kreator писал(а): Эта "фича" изначально существует
Угу! Даже в C6.3 этого не было.

А вообще yuriy ещё ни разу нам фидбэк свой не прислал. А мы тут...!
yuriy
Посетитель
Сообщения: 42
Зарегистрирован: 24 Август 2005, 3:54

Сортировка цифр в поле String

Сообщение yuriy »

Большое всем спасибо

так как надо сделать очень быстро вполне подошел вариант предложенный vd-vuf

С Уважением
Юрий
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сортировка цифр в поле String

Сообщение Shur »

yuriy писал(а): Большое всем спасибо
You are welcome!
Ответить