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

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 64 22.02.23 09:51 Сейчас в теме
(1)
МассивЗначений = СтрРазделить(Значение, " х");

В массиве будет:
"152"
"202"
"150,5"
"мм"
3. Gok9 22.02.23 09:55 Сейчас в теме
(2) Потом с массива взять по индексу определенные значения и вставить по определенным столбцам да?
4. lmnlmn 67 22.02.23 10:03 Сейчас в теме
(3) Да, но не забудьте проверить количество элементов в массиве дабы на ошибку не налетать ежели строка не оправдает ваши ожидания. А вообще в 8.3.23 хотели регулярные выражения сделать. С ними изящнее и точнее наколенные парсеры городить.
6. nomad_irk 64 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); 
КонецЦикла
Оставьте свое сообщение
Вакансии
Аналитик 1C
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Тестировщик 1С
Москва
зарплата от 125 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 90 000 руб.
Полный день

Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день