#0
by Macleod
Пример:Есть строка вида "1-5, 7, 10, 15-34, 76-82".Найти, входит ли число 17 в эту строку...Понятно, что одинэсина должна сказать "ага, входит". А вот алгоритм никак не придумывается.
#3
by SpellKeeper
А чем тебя стандартная функция Найти не устраивает? У тебя в строке все числа с разделителями, либо "," либо "-", так что не промажет.
#6
by который не честный
4 - это не комне вопрос... хотя как видишь они могут быть и однозначными, и сколько там буде вхождений единицы?просто немного меняется строка вхожденийСтрЧислоВхождений(МояСтрока," 17-")СтрЧислоВхождений(МояСтрока,"17,")
#7
by Macleod
Хе. Вы не допоняли, господа :)))(1, 2) Где вы увидели в строке число "17"?Число "17" входит в диапазон 15-34.Может так понятней будет. 17 - это номер контейнера. Строка - список номеров контейнеров в заказе. То есть "с первого по пятый, десятый, с пятнадцатого по тридцать четвёртый, с семьдесят шестого по восемьдесят второй". Надо узнать, есть ли семнадцатый контейнер в списке контейнеров заказа.
#8
by Sure2
Оправившись после вчерашнего торжества с новыми силами принялся за работу...Если я правильно понял условия задачи, то (1-5) ничего не поняли :-)То есть: интересует не вхождение подстроки "17" в искомую строку, а то, что либо это число указано явно, либо входит в один интервал (в примере 15-34)Извини, я слишком тупой, но ничего лучшего не могу предложить, как разбирать строку по элементам
#9
by который не честный
тогда нужен полный разбор строки на составляющие, диапазоны разворачивать и тд..
#10
by Diter
1. Находим первое вхождение "-" - нашли диапазон2. "отрезаем" это диапазон от остальной строки.3. получаем значения типа "число" начало и конец диапазона4. сравниваем искомое число с этими двумядвигаемся дальше. В качестве разделителей всегда используем ",".
#11
by Natalia
ну так уже определенно понятнее ))) Определенно нужно строчку по частям разбирать. И не такая уж она и забавная... )))
#13
by Gary
(+9) строку в СЗ и в цикле по СЗ заполнить ТЗ диапазонов (Макс, Мин) запихивать. Потом функцию состряпать, возвращающую 1 или 0 :-)
#15
by который не честный
втыскивай из строки подстроки от начала идо запятой, проверяй есть ли знак "-" если нет то переводи в число и сравнивай равно оно искомому или нет, иначе вытаскивай числа и смотри попадает ли искомое в диапозон...
#16
by Macleod
Маладца. Именно правильно понял. Представляешь, какие мысли с бодуна приходят :))) Разбирать по элементам - это первое, что пришло в больную голову, но может ещё мысли родятся?Самое смешное начнётся дальше :)))Пример. Есть два заказа, входящие в одну поставку. Чел забивает номера, как в указано. И надо проследить, чтобы номера не пересекались.То есть. Заказ1. "1-5, 6, 9-15", Заказ2. "4, 5, 7, 8, 10-12". При вводе контенеров в заказ2 контейнеры 10, 11, 12 не катят, пототму что уже есть в заказе1.Как такая задачка? :)))
#18
by mclarry
Тогда разворачивать строку "1-5, 6, 9-15" в ",1,2,3,4,5,6,9,10,11,12,13,14,15,", и вторую тоже. Вхождение каждого числа из второй строки искать как Найти( РазвСтрока, ","+ МоеЧисло+ ",")
#19
by БаГ
Не на много сложнее - просто нужна процедура, которая развернет строку с интервалами "1-6,9-11" в строку "1,2,3,4,5,6,9,10,11". А дальше - что угодно!
#22
by cathode
(18, 19) ИМХО, разворот по всем значениям не самое лучшее решение: например, в MS Word при печати диапазонов страниц можно указывать незакрытые диапазоны, вроде "-5,10-", т.е. сначала по пятую страницу, а потом с десятой и до конца. Проверка параметрических условий в данном случае гораздо легче и производительнее.
#23
by MetaEditor
16)строка вида "4, 5, 7, 8, 10-12" превращается в строку вида"4,5,7,8,10,11,12" и делается тотже цикл что и для единичного варианта...
#25
by Gary
Ой, дайте я тоже "померяюсь" :-), все-равно день нерабочий ... Вот мое решение - работает ! Способ использования: создать новую обработку и заменить текст модуля на нижеприведенный.
#26
by Uno
Если диапозоны небольшие, то быстрее искать "-" в строке и разварачивать строку, но если диапозоны большие то тормоза будут жуткие и лечше юзать алгоритм типа 14. Список лучше сортирануть если диапозоны непопорядку идут,и условие на больше поставить чтоб неискать после того как в нем пойдут цифры больше искомой.
#31
by Macleod
Если подробней, в аську... 152077720Тока ближайшие пару часов меня не будет. Не совсем терминал. Оптовая компания, компутерные прибамбасы, поставки из-за бугра фурами.
#36
by KAO
не нужно внешних компонент - достаточно WSH 5.6Пример поиска строки srt по шаблону templfunction TestRE(str,templ) tryendFunction
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как лучше найти первое вхождение символа с конца строки ?
- Как найти с помощью Найти()
- Найти последнее вхождение подстроки...
- Интересная задачка для решения на SQL (Найти в диапазоне номеров пропуск)
- Как найти точку диаграммы ганта? (метода Найти() нет)
- логическая задачка!
- Как найти в Excel найти значения по формату?
- 1С 8.2: Работа со строкой-нужно найти вхождение символа и удалить символы после
- СКД. В Строке либо цифры либо символы. Как понять когда что?
- Не могу найти по коду в справочнике так как в нем пробелы а в строке поиска нет
- Задачка. Найти угол Х
В этой группе 1С
- Закрыть окно входа в 1с
- Редактирование ТЗ через Табличное поле
- замена счета в операциях
- Как лучше получить последнее движение регистра?
- Доступ к ГУИД в 1С
- Передача ОС в аренду (счет 03)
- 1c почта
- Отчет XYZ - анализ товаров
- Использование одного справочника для нескольких баз DBF
- Подскажите пожалуйста как можно программно закрыть 1с.
- Как открыть табличный документ в другом окне
- Отличия розницы от опта
- картинки для номенклатуры в 1С 7.7 под терминалом
- Зависание загрузки 1С при "загрузка конфигурационной информации"
- КАМИН НДФЛ
- Проверка прав на доступ к конкретному объекту
- #Если Сервер Тогда База = Новый COMОбъект("v77.Application") #КонецЕсли
- А можно ли в одним запросе выбрать СУММЫ Шапок и суммы ТЧ
- ИспользоватьРодителя() при выборе справочника из документа.
- Почему два поля съезжают в сторону