Как можно со строки взять определенные символы, остальные удалить?
Здравствуйте, как можно взять определенные символы из строки, а остальные просто удалить? Мне например из строки размер нужно взять ширину, длину и высоту: 152 х 202 х 150,5 мм
Написал алгоритм для строки ширины, после символа икс "х" удаляет все что с лева, если указать справа то ничего не меняется, ещё не знаю как взять цифры с середины например:"152 х 202 х 150,5 мм" с этой строки как взять "202"? Строк много, и я взял в качестве признака "х" но он берет только первые символы до "х" потом остальные отрезает
Вот алгоритм для ширины т.е берет до "х" потом остальные отрезает:
Этот алгоритм хотел применить для высоты, но он не работает:
Хотел бы удалить ещё неправильные строки, например если количество символов превышает определенного количества то удалить все строки...
В изображении в первой строки вручную перенос значение как правильно должна выглядит, можете подсказать как это исправить?
Написал алгоритм для строки ширины, после символа икс "х" удаляет все что с лева, если указать справа то ничего не меняется, ещё не знаю как взять цифры с середины например:"152 х 202 х 150,5 мм" с этой строки как взять "202"? Строк много, и я взял в качестве признака "х" но он берет только первые символы до "х" потом остальные отрезает
Вот алгоритм для ширины т.е берет до "х" потом остальные отрезает:
НайтиЧислоСимвола = Найти(Значение,"х");
Если НайтиЧислоСимвола > 0 Тогда
Значение = Лев(Значение,НайтиЧислоСимвола-1);
Значение = СокрЛ(Значение);
КонецЕсли;
НайтиЧислоСимвола = Найти(Значение,"×");
Если НайтиЧислоСимвола > 0 Тогда
Значение = Лев(Значение,НайтиЧислоСимвола-1);
Значение = СокрЛ(Значение);
КонецЕсли;
ПоказатьЭтот алгоритм хотел применить для высоты, но он не работает:
НайтиЧислоСимвола = Найти(Значение,"х");
Если НайтиЧислоСимвола > 2 Тогда
Значение = Прав(Значение,НайтиЧислоСимвола-3);
Значение = СокрП(Значение);
КонецЕсли;
НайтиЧислоСимвола = Найти(Значение,"×");
Если НайтиЧислоСимвола > 2 Тогда
Значение = Прав(Значение,НайтиЧислоСимвола-3);
Значение = СокрП(Значение);
КонецЕсли;
ПоказатьХотел бы удалить ещё неправильные строки, например если количество символов превышает определенного количества то удалить все строки...
В изображении в первой строки вручную перенос значение как правильно должна выглядит, можете подсказать как это исправить?
Прикрепленные файлы:
По теме из базы знаний
- Быстрый поиск дублей в 1С с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Разработка и сценарное тестирование с Vanessa-ADD. Собственные шаги и библиотеки. Экспортные сценарии
- Обзор полезных методов БСП 3.1.4
- Расширяемый фреймворк на 1С, или Нюансы натягивания совы на глобус
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) Избавьтесь от пробелов: либо СтрЗаменить() перед СтрРазложить(), либо добавьте в строку разделителей СтрРазложить().
P.S. Посмотрел не только на ваш результат, но и на предложенный в (2) код - там уже включены пробелы, но не используется параметр ВключатьПустые, поэтому и не срабатывает как надо.
P.S. Посмотрел не только на ваш результат, но и на предложенный в (2) код - там уже включены пробелы, но не используется параметр ВключатьПустые, поэтому и не срабатывает как надо.
(1)
тоже самое, что в (2), только для случая, когда платформа не поддерживает СтрРазделить()
тоже самое, что в (2), только для случая, когда платформа не поддерживает СтрРазделить()
МассивПоказателей = Новый Массив();
Пока СтрНайти("х", СтрокаИсходная) <> 0 Цикл
показатель = Сред(СтрокаИсходная, 1, СтрНайти("х", СтрокаИсходная)-1);
показатель = СтрЗаменить(показатель, "мм", "");
МассивПоказателей.Добавить(показатель);
СтрокаИсходная = Прав(СтрокаИсходная, СтрНайти("х", СтрокаИсходная) + 1);
КонецЦикла
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот