По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) как-то так:
МассивСтрок = СтрРазделить(ВхСтрока," ", Ложь);
РазмерМассива = МассивСтрок.Количество();
Если РазмерМассива > 4 Тогда
Попытка
Цена = Число(МассивСтрок[РазмерМассива-5]);
Количество = Число(МассивСтрок[РазмерМассива-3]);
Сумма = Число(МассивСтрок[РазмерМассива-1]);
Исключение
Сообщить("Ошибка формата");
КонецПопытки;
КонецЕсли;
Показать
(2)Спасибо итоговое разбитие у меня вот так вышло
Массив = СтрРазделить(стр.N34, Символы.ПС, Ложь);
Если Массив.Количество()=0 Тогда
Продолжить;
КонецЕсли;
Для каждого строка Из Массив Цикл
МассивСтрок = СтрРазделить(строка, " ", Ложь);
РазмерМассива = МассивСтрок.Количество();
Если РазмерМассива > 4 Тогда
Попытка
Наименование = "";
Для Н = 0 По Число(РазмерМассива - 6)Цикл
Наименование = СокрЛП(Наименование + " "+МассивСтрок[Н]);
КонецЦикла;
Цена = Число(МассивСтрок[РазмерМассива-5]);
Количество = Число(МассивСтрок[РазмерМассива-3]);
Сумма = Число(МассивСтрок[РазмерМассива-1]);
Исключение
Сообщить("Ошибка формата");
КонецПопытки;
КонецЕсли;
КонецЦикла;
Сообщить(Наименование+" "+Цена+"*"+Количество+"="+Сумма);
Показать
(3)
Лично я бы раскладывал по следующему алгоритму:
1. Разбирал бы строку справа налево (от конца к началу).
2. Все, что правее первого (с учетом п.1 - последнего) нецифрового знака (т.е. "=" или пробел) - это сумма.
3. Все, что левее суммы и правее первого нецифрового знака ("х", "*" или пробел) - это количество.
4. Все, что левее количества с первого нецифрового знака (пробел) - наименование.
Готовый код писать не стану, учитывая, что автора ветки вполне устроило разложение по номерам подстрок... .. до первого изменения в формате строки.
Спасибо итоговое разбитие у меня вот так вышло
Ну что же, вполне работоспособное решение.
Лично я бы раскладывал по следующему алгоритму:
1. Разбирал бы строку справа налево (от конца к началу).
2. Все, что правее первого (с учетом п.1 - последнего) нецифрового знака (т.е. "=" или пробел) - это сумма.
3. Все, что левее суммы и правее первого нецифрового знака ("х", "*" или пробел) - это количество.
4. Все, что левее количества с первого нецифрового знака (пробел) - наименование.
Готовый код писать не стану, учитывая, что автора ветки вполне устроило разложение по номерам подстрок... .. до первого изменения в формате строки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот