Как можно со строки взять определенные символы, остальные удалить?

1. Gok9 22.02.23 09:45 Сейчас в теме
Здравствуйте, как можно взять определенные символы из строки, а остальные просто удалить? Мне например из строки размер нужно взять ширину, длину и высоту: 152 х 202 х 150,5 мм
Написал алгоритм для строки ширины, после символа икс "х" удаляет все что с лева, если указать справа то ничего не меняется, ещё не знаю как взять цифры с середины например:"152 х 202 х 150,5 мм" с этой строки как взять "202"? Строк много, и я взял в качестве признака "х" но он берет только первые символы до "х" потом остальные отрезает
Вот алгоритм для ширины т.е берет до "х" потом остальные отрезает:
НайтиЧислоСимвола = Найти(Значение,"х");
Если НайтиЧислоСимвола  > 0 Тогда
	Значение = Лев(Значение,НайтиЧислоСимвола-1);
	Значение = СокрЛ(Значение);
КонецЕсли;     


НайтиЧислоСимвола = Найти(Значение,"×");
Если НайтиЧислоСимвола  > 0 Тогда
	Значение = Лев(Значение,НайтиЧислоСимвола-1);
	Значение = СокрЛ(Значение);
КонецЕсли;
Показать


Этот алгоритм хотел применить для высоты, но он не работает:
НайтиЧислоСимвола = Найти(Значение,"х");
Если НайтиЧислоСимвола  > 2 Тогда
	Значение = Прав(Значение,НайтиЧислоСимвола-3);
	Значение = СокрП(Значение);
КонецЕсли;     


НайтиЧислоСимвола = Найти(Значение,"×");
Если НайтиЧислоСимвола  > 2 Тогда
	Значение = Прав(Значение,НайтиЧислоСимвола-3);
	Значение = СокрП(Значение);
КонецЕсли;
Показать


Хотел бы удалить ещё неправильные строки, например если количество символов превышает определенного количества то удалить все строки...

В изображении в первой строки вручную перенос значение как правильно должна выглядит, можете подсказать как это исправить?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 72 22.02.23 09:51 Сейчас в теме
(1)
МассивЗначений = СтрРазделить(Значение, " х");

В массиве будет:
"152"
"202"
"150,5"
"мм"
3. Gok9 22.02.23 09:55 Сейчас в теме
(2) Потом с массива взять по индексу определенные значения и вставить по определенным столбцам да?
4. lmnlmn 69 22.02.23 10:03 Сейчас в теме
(3) Да, но не забудьте проверить количество элементов в массиве дабы на ошибку не налетать ежели строка не оправдает ваши ожидания. А вообще в 8.3.23 хотели регулярные выражения сделать. С ними изящнее и точнее наколенные парсеры городить.
6. nomad_irk 72 22.02.23 10:18 Сейчас в теме
7. Gok9 22.02.23 11:38 Сейчас в теме
(6) Пока так получается...
Прикрепленные файлы:
8. user856012 13 22.02.23 12:16 Сейчас в теме
(7) Избавьтесь от пробелов: либо СтрЗаменить() перед СтрРазложить(), либо добавьте в строку разделителей СтрРазложить().

P.S. Посмотрел не только на ваш результат, но и на предложенный в (2) код - там уже включены пробелы, но не используется параметр ВключатьПустые, поэтому и не срабатывает как надо.
5. VictorRGB2 13 22.02.23 10:03 Сейчас в теме
(1)
тоже самое, что в (2), только для случая, когда платформа не поддерживает СтрРазделить()

МассивПоказателей = Новый Массив();
Пока СтрНайти("х", СтрокаИсходная) <> 0 Цикл
  показатель = Сред(СтрокаИсходная, 1, СтрНайти("х", СтрокаИсходная)-1);
  показатель = СтрЗаменить(показатель, "мм", "");
  МассивПоказателей.Добавить(показатель);
  СтрокаИсходная = Прав(СтрокаИсходная, СтрНайти("х", СтрокаИсходная) + 1); 
КонецЦикла
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот