ОБСУЖДЕНИЕ

Удаление из текста всех символов, кроме трехзначных чисел.

10 ответов 8,1 тыс.
Автор темы
Нужно удалить из текста символы, не являющиеся трехзначными числами.
Вот мой вариант, но цикл проходит только один раз. Можете ли подсказать, в чем ошибка?(кроме тупости самого способа решения :blush: ) И можно ли довести код до рабочего состояния...

Код:
 'здесь был плохой код )
 
ох мать моя женщина.
А просто найти все числа >99 AND <1000 никак?
 
запись типа 031 или 004 тоже следует рассматривать как трехзначное число... :blush:
 
А эти числа разделены как-то? Или могут быть любые символы справа слева без пробелов?
 
Могут быть любые символы... И с пробелами, и без...
 
Например: dfjg234nd55846/. hfhfпр оаппа567...
и результатом соответственно должно быть: 234567
 
ммм... мб, лучше просмотреть с конца строки?
если не цифра - сразу удалять, если s(n), т.е. n-й символ цифра - просмотреть символы впереди (если s(n), s(n-1), s(n-2) - цифры, а n-2 = 1 (начало строки) или s(n-3) - не цифра - оставляем, иначе убиваем всё идущие подряд цифры (s(n)...s(i), i<=n), затем и идущие перед ними нечисловые (s(i-1)...) до тех пор, пока не встретится цифра или строка не закончится.
Встретили цифру s(k) - проверяем символы впереди, как описано выше - (оставляем, если s(k), s(k-1), s(k-2) - цифры, а перед ним не цифра или s(k-2) - начало строки).

Добавлено: кстати, в чем глубокий смысл
 
:wacko: смысл понятен...а вот его реализация... :blush:

;) смысл в r=r, видимо, настолько глубоко, что даже мне не открывается...)))))
 
циклом шагаете по строке, если не цифра выкинуть, если цифра складируете, проверяете, если длина больше 3 выбросить, если 3 сложить в закрома.

и как "зафиксировать" программно тот момент, когда нужно проверять длину строки из цифр? т.е момент перехода в исходной строке от группы цифр к другим символам...
 
Усё, задача решена... Cделала по-своему, изменив свой цикл при помощи like... )) Но всё равно спасибо всем за участие :(