Дубли и сортировка чисел в символьной строке | |
---|---|
dfr Автор Сообщений: 254 Откуда: Барнаул Дата регистрации: 29.07.2005 |
Нужно убрать дубли и упорядочить по возрастанию числа в текстовой последовательности.
Например из '21,22,22,23,40,27,40,5' сделать '5,21,22,23,27,40' Пока сделал на скорую руку:
Но нужно прогонять этот скрипт по множеству строк в таблицах, может есть решение "по быстрее"? Или в этом что оптимизировать? |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Taran Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Через массив делай.
Alines... Asort. И между этими командами пробежаться по массиву и строки преобразовать в int. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Давно нашел, думаю здесь, и использую.
Например № дока может быть a123пп, и это надо отсортировать. В общем, думаю вполне для вашей задачи то.
------------------ |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
dfr Автор Сообщений: 254 Откуда: Барнаул Дата регистрации: 29.07.2005 |
А уникальные как там искать? (дубли убирать) |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Дмитрий Петров Сообщений: 3071 Откуда: Пермь Дата регистрации: 09.07.2001 |
Что то я фокс совсем забыл
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Может, так подойдет:
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Здесь будет ошибка, если IF не сработает ни разу. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Странно, но IF срабатывает. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ошибки не будет, будет пустая строка. tcIn = '121,122,122,123,140,127,140,105' tcIn = '' tcIn = '21, 22, 40' ... Наверное всё же (vValue I) - если требуется числовая сортировка а не строковая (когда 5 стоит после 40) - ну и в выводе transform()/ltrim(str()) применить... ------------------ WBR, Igor |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
С чего вы так решили? Эти ваши цифры я вижу впервые - для примера взята строка от ТС, новых требований он пока не предъявлял. Раз уж этот цикл вызвал затруднения, проверьте свои цифры (предварительно подправьте свою третью строку через CHRTRAN()).
|
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
LUCIAN Сообщений: 343 Откуда: Лида Беларусь Дата регистрации: 25.03.2008 |
Исправлено 2 раз(а). Последнее : LUCIAN, 09.10.18 14:10 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Да, не будет. Значит, придирку с отрицательными аргументами SUBSTR не засчитываем. Просто не очень красиво. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Странные вы с ИК. Вы в цикл от 1 до 100 вставляете цифры за пределами этого диапазона и удивляетесь, что не вставляется. Вроде не новички. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
В этом и проблема. Анализ граничных значений производится в голове, автоматом. Другой вопрос, что я уже не помню, будет Exception в фоксе, или нет. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Обдолбанность данного решения отсутствие формальной ошибки не отменяет... 2 LUCIAN Плачу кровавыми слезами. На кой чёрт в простой задаче столько ненужных действий, включая двойное создание текстового файла? При том что основа "логики" такая же как в решении Дмитрия Петрова чуть выше... ------------------ WBR, Igor |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
LUCIAN Сообщений: 343 Откуда: Лида Беларусь Дата регистрации: 25.03.2008 |
Тогда,метод пузырька,которого полно в интернете,теперь слёзы пойдут кровавыми пузырями
Исправлено 3 раз(а). Последнее : LUCIAN, 15.10.18 08:38 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Вот же время у кого-то свободного много. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4222 Откуда: Москва Дата регистрации: 11.11.2008 |
Проблема приведенного алгоритма именно в том, что он может подойти, а может и не подойти. Или даже хуже - сегодня он подошел, а завтра, на новых данных, перестанет работать - в условии ничего не пишется о том, числа какой величины могут быть в этой последовательности. ТС делает упор на скорость обработки, а именно с ней и могут быть проблемы - выполнять миллион проверок пусть даже для 100 в среднем чисел в строке, явно нерационально. Но может быть, среднее количество чисел в строке огромно - тогда алгоритм может и устроить, но его минус - необходимость указания конкретного максимума - кто знает, какие данные придут завтра. Хуже всего, что прога отработает, не выполнив задачи, но пользователь об этом не узнает, если только случайно не заметит, что числа 101 в выходной строке больше нет. |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Про число 100 я уже отвечал. Для других чисел выложил расширенное решение с MIN/MAX, что даже сам ИК признал, что он от него обдолбался. На скорость проверять чьи-то миллионные записи у меня нет времени, да я и не навязываю свое решение никому. Если кому-то пригодится, то и хорошо. Исправлено 1 раз(а). Последнее : lulgu, 10.10.18 17:03 |
Re: Дубли и сортировка чисел в символьной строке | |
---|---|
akvvohinc Сообщений: 4222 Откуда: Москва Дата регистрации: 11.11.2008 |
Функции MIN и MAX имеют ограничение на 26 параметров, так что они не могут ничего гарантировать.
Не записи миллионные, я имел в виду, что в строке могут встретиться любые числа, например, 1458761. А так - свою задачу ТС решил и сам. Он просил помочь как раз с точки зрения скорости работы алгоритма. Исправлено 1 раз(а). Последнее : akvvohinc, 10.10.18 22:36 |
© 2000-2024 Fox Club  |