|
#1
|
|||
|
|||
Сортировка...
Здравствуйте. Натолкните пожалуйста на мысль, как разобраться с такой проблемой:
Есть текстовый файл с построчно идущими номерами такого вида: 8/1/2б 3/1 3/3 4 6/1 7 8/2 6/1/2 6/1/4 8 4 8/1 2 8/1/1а 3/2 8/1/2а 3 1 6/1/3 8/1/1б 6/1/1 5 10 8/1/3б 6 8/3 9 Строки в этом файле нужно привести к такому состоянию: * на "разветвлениях" буквы при наличии указывают какие номера должны стоять впереди 1 2 3 3/1 3/2 3/3 4 5 6 6/1 6/1/1 6/1/2 6/1/3 6/1/4 7 8 8/1 8/1/1а * 8/1/2а * 8/1/1б * 8/1/2б * 8/1/3б * 8/2 8/3 9 10 Т.е. отсортировать с учетом "вложенности". для наглядности: Заранее спасибо за любые подсказки. Последний раз редактировалось abc26, 23.03.2012 в 10:07. |
#2
|
|||
|
|||
можно разбить строки в какую-нибудь вложенную структуру, и упорядочить её
или regexp-ами или чем-другим привести к виду 001 006/001/003 008/001/б01 006/001/001 005 010 упорядочить stringlist-ом, и привести обратно к норм виду снова regexp-ами... |
#3
|
|||
|
|||
PHP код:
|
#4
|
|||
|
|||
еще можно просто сравнивать строки. строка "2" по умолчанию больше "1". "1/2" > "1/1" но меньше чем "2". соответственно вложенность по такому же принципу сама отсортируется. сортировку делать любым методом для чисел, хоть через массив, просто в ячейках массива будут строки, а не числа.
поправьте меня, если не так. Последний раз редактировалось nixel, 23.03.2012 в 18:35. |