Имя: Пароль:
LIFE
 
OFF: Головоломка на сообразительность
,
0 mzelensky
 
01.04.13
15:05
Доброго всем!
Очередная головоломка.

Исходыне данные это строка:
"несла девочка 5 яблок, 4 груши и 2,5 литра молока"

На выходе нужно получить табличку:
"несла девочка"
"5"                        - левый шум " " правый шум " "
яблок,
4                          - левый шум " " правый шум " "
руши и
2,5                        - левый шум " " правый шум " "
литра молока

Т.е. исходную строку нужно разложить на вхождения чисел (числа могут быть как целыми, так и дробными. Отделяться могут как запятой, так и точкой).

Вопрос- ищу более красивый вариант решения. Кто что предложит?!
1 Eugene_life
 
01.04.13
15:06
(0) Предлагаю разбить вручную.
2 mzelensky
 
01.04.13
15:07
(1) разбить что? голову об стену?
3 sikuda
 
01.04.13
15:07
Регулярные выражения, которых нет в 1С - предлагать?
4 mzelensky
 
01.04.13
15:09
(3) которых НЕТ не надо. Да и там заморочка может быть с регулярными выражениями - в исходной строке могу попадаться параметры рег.выражений ([,*,?).

В общем хотелось бы без них, но если прям ЖАЖДЕШЬ, то давай и с ними.
5 mzelensky
 
01.04.13
15:26
Чет не хочет народ думать в день дурака....
6 Karamzin
 
01.04.13
15:30
(5) у кого-то это ещё и последний день отчетности годовой..
7 mzelensky
 
01.04.13
15:32
(6) меня это, слава богу, не касается :)

А вот с задачкой чет придумать нужно. Можно конечно по простому подряд символы анализировать, но думал может кто более изящное решение подскажет.
8 Karamzin
 
01.04.13
15:35
завтра спроси, а то половина занята, а вторая половина думает, что это розыгрыш
9 Зойч
 
01.04.13
15:35
(7) regexp
10 AndyD
 
01.04.13
15:38
удаляй из строки все буквы, удаляй символы препинания, если перед ним пробел, а не цифра, заменяй все оставшиеся запятые и точки на один вид символов( например точка) и пользуй стандартную функцию разбития строки в массив с разделителем точка
11 hhhh
 
01.04.13
15:41
(7) давно бы уже написал, чего сидишь. Элементарная работа со строками. Причем что-то вроде выделить число в строке есть во всех типовых.
12 Лефмихалыч
 
01.04.13
15:44
(2) заметь - ты сам это предложил
13 mzelensky
 
01.04.13
15:46
(9) а как строка поиска будет выглядеть?!
14 Kurlya
 
01.04.13
15:46
а если разложить в массив с разделителем по пробелу? и потом его прогнать на число?
15 mzelensky
 
01.04.13
15:46
(12) я просто опередил тебя!
16 mzelensky
 
01.04.13
15:47
(14) строки могут быть и "грязные", например:
"партия из 12шт" или вообще вот такое "Вино12Бутыло" :)

А такое тоже нужно обработать!
17 Mikeware
 
01.04.13
15:49
похоже, оно пишет парсер назначений платежа...
18 mzelensky
 
01.04.13
15:49
(11) не видел такой функции в типовых. А точнее название функции и саму конфу можешь назвать?!
19 mzelensky
 
01.04.13
15:50
(17) А за "оно" ведь можно и по шапке получить!
20 Kurlya
 
01.04.13
15:56
(16) тогда только посимвольно. (17) Да, очень похоже :-)
21 mzelensky
 
01.04.13
15:58
(17)(20) в плане "для чего это нужно" не угадали, господа...да и врятли угадаете.

Посимвольно не хотелось :( но видать прийдется.
22 пыхтачокк
 
01.04.13
16:10
осторожней, не создай случайно скайнет вместо парсера.
23 mzelensky
 
01.04.13
16:10
(22) поздняк метаться...