|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.05.2011, 14:33 | 1 | | #1 |
Сортировка списка (элементы текст) по возрастанию
Инженер ЭОМ
Москва
Регистрация: 05.03.2009
Сообщений: 215
|
||
Просмотров: 9268
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
sdv79, а почему для (setq removing_list (list "П2" "П22" "П12" "П2" "П1" "Т1"))
Итого ("П1" "П2" "П12" "П22" "Т1")), а не ("П1" "П12" "П2" "П22" "Т1")). Я почему спрашиваю, ведь есть же функция acad_strlsort - позволяет отсортировать по возрастанию список, эл-ами которого являются строки, так вот они и вернет Код:
__________________
cadtools Последний раз редактировалось TararykovDG, 03.05.2011 в 14:59. |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Так вот я об этом и спрашиваю, если П12 должно идти после П2, то это уже не "Сортировка списка (элементы текст) по возрастанию", а Ваша личная сортировка, по вашим правилам.
__________________
cadtools |
|||
|
||||
TararykovDG
Вероятно я не смог корректно донести свой вопрос необходимо привести список вида ("П2" "П22" "П12" "П2" "П1" "Т1")) к списку вида ("П1" "П2" "П12" "П22" "Т1")) вариант ("П1" "П12" "П2" "П22" "Т1") не устраивает Лиспер ваш код не дает решение вопроса к тому же вы правильно заметили, возможны варианты с тире или точнкой ("ПК2-1" "П22-2" "П12-1" "П2-2 "П1" "Т1")) пользователь может произвольное имя дать |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
sdv79, на приведенном примере код дает вполне ожидаемый результат. А насчет того, что "пользователь может произвольное имя дать": неопределенность исходных условий гарантирует отсутствие результата.
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Вариант сортировки строк как чисел можно посмотреть на болоте здесь:
Search of Windows type Sort function или на dwg.ru
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Подниму тему как наиболее подходящею
имеется список типа: (("ЩО-1" "Гр 2" 1.2) ("ЩО-1" "Гр 4" 3.0) ("ЩО-1" "Гр 5" 0.8) ("ЩО-2" "Гр 2" 1.0) ("ЩО-2" "Гр 1" 1.5) ("ЩО-1" "Гр 1" 2.0) ("ЩО-1" "Гр 3" 1.0) ("ЩО-2" "Гр 3" 1.5) ("ЩО-3" "Гр 2" 1.7) ("ЩО-3" "Гр 1" 1.8)) нужно получить список типа: (("ЩО-1" "Гр 1" 2.0) ("ЩО-1" "Гр 2" 1.2) ("ЩО-1" "Гр 3" 1.0) ("ЩО-1" "Гр 4" 3.0) ("ЩО-1" "Гр 5" 0.8) ("ЩО-2" "Гр 1" 1.5) ("ЩО-2" "Гр 2" 1.0) ("ЩО-2" "Гр 3" 1.5) ("ЩО-3" "Гр 1" 1.8) ("ЩО-3" "Гр 2" 1.7)) то есть нужно отсортировать список по возрастанию первых двух элементов под списка третий элемент не участвует в сортировки всем заранее спасибо |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
Код:
__________________
cadtools |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
1 и 2 элемент списка сложи при помощи strcat, чтобы получить список вида
("ЩО-1Гр 1" "ЩО-1Гр 2" "ЩО-1Гр 3" "ЩО-1Гр 4" "ЩО-1Гр 12" "ЩО-2Гр 1" "ЩО-2Гр 2" "ЩО-2Гр 3" "ЩО-3Гр 1" "ЩО-3Гр 2") Теперь сортируй при помощи функций от VVA (сортировка строк как чисел). В общем, такой код - с использованием моей функции (сделана на основе функции VVA): Код:
Код:
|
|||
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Цитата:
спасибо да такого я тоже додумался но это не то что мне нужно, используя этот код мы действительно получаем список типа: (("ЩО-1" "Гр 1" 2.0) ("ЩО-1" "Гр 2" 1.2) ("ЩО-1" "Гр 3" 1.0) ("ЩО-1" "Гр 4" 3.0) ("ЩО-1" "Гр 5" 0.8) ("ЩО-2" "Гр 1" 1.5) ("ЩО-2" "Гр 2" 1.0) ("ЩО-2" "Гр 3" 1.5) ("ЩО-3" "Гр 1" 1.8) ("ЩО-3" "Гр 2" 1.7)) все хорошо если есть шиты ЩО-1...ЩО-9 и группы Гр 1...Гр 9 а если есть ЩО-1...ЩО-10 и группы Гр 1...Гр 10 код уже не подходит Frigate, и тебе спасибо но это не совсем то, если я правильно тебя понял ты предлагаешь создать список из первых двух сцепленных элементов под списка и их сортировать, но мне все токи нужен 3 элемент под списка только он не участвует в сортировки. И Данила раз уж ты откликнулся то может поможешь до конца с этим разобраться? |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
WST,
так ты попробуй - получается именно такой результат, какой тебе и нужен. 3-ий элемент не участвует в сортировке. А список из сцп=епленых элементов я слоздаю только для того, чтобы отсортировать. Мне кажется, ты не пробовал прогу. Она все считает, и учитывает то, что не учитывает код от TararykovDG вот такой список, к примеру Код:
Код:
а код бери из моего предыдущего поста. Последний раз редактировалось Frigate, 02.01.2012 в 23:41. |
|||
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Frigate, я прогу пробовал, вот с таким списком
("ЩО-1Гр 1" "ЩО-1Гр 2" "ЩО-1Гр 3" "ЩО-1Гр 4" "ЩО-1Гр 12" "ЩО-2Гр 1" "ЩО-2Гр 2") все нормально но внем нету 3-его элемента а с токим ничего не получается (("ЩО-1Гр 1" 1.26) ("ЩО-1Гр 11" 1.26) ("ЩО-2Гр 1" 0.864) ("ЩО-1Гр 2" 1.26)) тогда дай пример списка который прога отсортирует так как мне нужно добавил ================================================================= Frigate, спосибо ты прав! а я тебя не понял и начил сциплять сам элементы Последний раз редактировалось WST, 02.01.2012 в 23:59. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Word. Преобразование нумерованного списка в обычный текст с сохранением нумерации | kp+ | Прочее. Программное обеспечение | 24 | 15.11.2021 13:20 |
Создание дополнительных параметров Visibility Set в динамических блоках. | Supermax | Программирование | 708 | 12.04.2021 14:54 |
[Autocad MEP 2011 ENG] Параметрические элементы. | cdholder | Вертикальные решения на базе AutoCAD | 23 | 02.04.2013 15:05 |
Сортировка по возрастанию и убывания из файла | xopox | Программирование | 1 | 03.06.2010 16:16 |
Сортирвка списка последовательно, по приоритетам (вопрос) | Tonic | Программирование | 9 | 02.02.2010 14:25 |