Страница 8 из 8
ЭДО
Добавлено: 17 Февраль 2023, 11:24
finsoftrz
Я не использую абс и связанные с ней декларации. Или просто декларации из стандартной поставки. Но использую много, чего нет в стандартной. Поэтому просто так взять inc+clw классов парсера не получится. Когда-то давно смотрел, требуется некоторая адаптация. А попробовать на всем стандартном, какой мне смысл?
Когда парсер использует vbscript, можно не париться с дилеммой, как оформить код. Тривиальные вещи, например, разбор файлов без вложенных структур в кьюшки или группы, убираем в класс. Менее стандартные ситуации можно прямо на vbscript прописать, так как убирание в методы класса только все усложнить и запутает. В этом случае используется стандартизированный интерфейс между скриптом и структурой в кларионе, для нестандартных ситуаций, он в приведённом в начале темы примере.
ЭДО
Добавлено: 17 Февраль 2023, 11:44
finsoftrz
У меня ещё была мысль оптимизировать разбор больших файлах с развесистой структурой. Как я писал, вызов парсера из vbscript работает достаточно быстро, основные затраты времени приходятся на раскладку по полям структур. Это в общем случае, когда соответствие определяется по названиям полей и тэгов. Как альтернатива, загнать результат парсинга в строку в памяти, а потом разобраться с ней перебором байтиков и явного присвоения полей структур в коде. То есть вызов в цикле метода, определяющего следующую пару название+значение и анализ в case. Кода на прикладной уровне больше, но скорость работы должна быть заметно выше.
ЭДО
Добавлено: 17 Февраль 2023, 11:57
Игорь Столяров
finsoftrz писал(а): 17 Февраль 2023, 11:24
можно не париться с дилеммой, как оформить код
В общем-то да. Вызываешь класс который делает работу и не паришься, что там внутри происходит ...
Но здесь важно, что бы решения из концептуальных примеров с десятью записями адекватно работали
на больших объёмах реальных данных, в т.ч. с индикацией процесса выполнения.
Не было вопросов на компьютерах с разными версиями и настройками Windows, правами ползователей
и терминальными сессиями, антивирусами и установленными компонентами и т.д. Вот что хочется.

ЭДО
Добавлено: 17 Февраль 2023, 12:08
Игорь Столяров
finsoftrz писал(а): 17 Февраль 2023, 11:44
была мысль оптимизировать разбор больших файлах с развесистой структурой
Ну у меня была другая мысль - пойти по Вашему пути, но без обработок внутри скрипта.
Т.е. двумя операторами тупо выгрузить любой XML вот в такой QUEUE и дальше уже ручками его разбирать ...
ЭДО
Добавлено: 17 Февраль 2023, 12:25
finsoftrz
Это хорошо работает на небольших xml. У меня, в основном, такие и есть. С долгим разбором столкнулся в одном магазине при запросе всд в Меркурии, когда там накопилось много непогашенных справок. В такой узкой точке можно применить оптимизацию.
Прогрессор вешать на разбор отдельного файла потребности не возникало. Когда получается и разбирается набор файлов, то в окне отображается операция и название файла.
ЭДО
Добавлено: 19 Февраль 2023, 10:28
Игорь Столяров
Те же яйца, только в профиль:
viewtopic.php?t=4976
- Завернул всё в класс;
- Предельно упростил рабочий код;
- Добавил пример получения данных контрагентов.