ЭДО

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

Я не использую абс и связанные с ней декларации. Или просто декларации из стандартной поставки. Но использую много, чего нет в стандартной. Поэтому просто так взять inc+clw классов парсера не получится. Когда-то давно смотрел, требуется некоторая адаптация. А попробовать на всем стандартном, какой мне смысл?

Когда парсер использует vbscript, можно не париться с дилеммой, как оформить код. Тривиальные вещи, например, разбор файлов без вложенных структур в кьюшки или группы, убираем в класс. Менее стандартные ситуации можно прямо на vbscript прописать, так как убирание в методы класса только все усложнить и запутает. В этом случае используется стандартизированный интерфейс между скриптом и структурой в кларионе, для нестандартных ситуаций, он в приведённом в начале темы примере.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

У меня ещё была мысль оптимизировать разбор больших файлах с развесистой структурой. Как я писал, вызов парсера из vbscript работает достаточно быстро, основные затраты времени приходятся на раскладку по полям структур. Это в общем случае, когда соответствие определяется по названиям полей и тэгов. Как альтернатива, загнать результат парсинга в строку в памяти, а потом разобраться с ней перебором байтиков и явного присвоения полей структур в коде. То есть вызов в цикле метода, определяющего следующую пару название+значение и анализ в case. Кода на прикладной уровне больше, но скорость работы должна быть заметно выше.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

finsoftrz писал(а): 17 Февраль 2023, 11:24 можно не париться с дилеммой, как оформить код
В общем-то да. Вызываешь класс который делает работу и не паришься, что там внутри происходит ...
Но здесь важно, что бы решения из концептуальных примеров с десятью записями адекватно работали
на больших объёмах реальных данных, в т.ч. с индикацией процесса выполнения.
Не было вопросов на компьютерах с разными версиями и настройками Windows, правами ползователей
и терминальными сессиями, антивирусами и установленными компонентами и т.д. Вот что хочется. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

finsoftrz писал(а): 17 Февраль 2023, 11:44 была мысль оптимизировать разбор больших файлах с развесистой структурой
Ну у меня была другая мысль - пойти по Вашему пути, но без обработок внутри скрипта.
Т.е. двумя операторами тупо выгрузить любой XML вот в такой QUEUE и дальше уже ручками его разбирать ... :)

1.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

Это хорошо работает на небольших xml. У меня, в основном, такие и есть. С долгим разбором столкнулся в одном магазине при запросе всд в Меркурии, когда там накопилось много непогашенных справок. В такой узкой точке можно применить оптимизацию.

Прогрессор вешать на разбор отдельного файла потребности не возникало. Когда получается и разбирается набор файлов, то в окне отображается операция и название файла.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

Те же яйца, только в профиль: viewtopic.php?t=4976

- Завернул всё в класс;
- Предельно упростил рабочий код;
- Добавил пример получения данных контрагентов.
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить