Есть таблица с колонками "Улица", "Дом", "Квартира". Нужно все это дело отсортировать по возрастанию. Все колонки имеют тип Строка, поэтому перед сортировкой привожу поля "Дом" и "Квартира" к типу Число. Проблема в том, что колонки "Дом" и "Квартира" могут содержать значения типа "14а", т.е. в число не перевести.... Вариант строковой сортировки (1, 14, 14а, 2, 25...) совершенно не устраивает. Надо чтобы было (1, 2, 14, 14а, 25...).
Задача:
Отсортировать текст из слов состоящих из цифр по чиловому типу (не по алфавиту).
Ответ (один из возможных):
1. по количеству букв-цифр в слове.
2. по коду CHR буквы-цифры.
3. по букве в слове.
П.С.1. проще как советует Lomok
П.С.2. в своё время мне нужно было вытаскивать дату из текста.. посмотри если интересно на моей страничке... не то конечно но что общее есть... хотя советов почти не было ... <http://infostart.ru/profile/15616/projects/1626/>
Lomok, при преобразовании в числовой формат у меня вылетает ошибка на значениях типа "14а".
В принципе, проблему эту я обошла, разделением номера дома и квартиры на две колонки:
//Функция разбивает строку вида "ЧисловыеСимволыПрочиеСимоволы" на две части "ЧисловыеСимволы" и "ПрочиеСимволы"
Функция ОтделениеЧисловойЧастиОтПрочего(СтрокаПроверки)
Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
Если НЕ(КодСимвола >= 48 И КодСимвола <= 57) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Новый Структура ("ЧисловаяЧ, ПрочаяЧ", Лев(СтрокаПроверки, а-1), Прав(СтрокаПроверки, СтрДлина(СтрокаПроверки)-(а-1)));
КонецФункции
Просто думала, что есть более простое решение... И более универсальное, т.к. вторая половина номера сортируется как строка, несмотря на возможное наличие чисел.
Шёпот теней, "по коду CHR буквы-цифры" - заинтересовал этот вариант, только не могу сообразить как его осуществить. Куда коды символов записывать и как их сортировать? В массив?