Я не использую абс и связанные с ней декларации. Или просто декларации из стандартной поставки. Но использую много, чего нет в стандартной. Поэтому просто так взять inc+clw классов парсера не получится. Когда-то давно смотрел, требуется некоторая адаптация. А попробовать на всем стандартном, какой мне смысл?
Когда парсер использует vbscript, можно не париться с дилеммой, как оформить код. Тривиальные вещи, например, разбор файлов без вложенных структур в кьюшки или группы, убираем в класс. Менее стандартные ситуации можно прямо на vbscript прописать, так как убирание в методы класса только все усложнить и запутает. В этом случае используется стандартизированный интерфейс между скриптом и структурой в кларионе, для нестандартных ситуаций, он в приведённом в начале темы примере.
ЭДО
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
ЭДО
У меня ещё была мысль оптимизировать разбор больших файлах с развесистой структурой. Как я писал, вызов парсера из vbscript работает достаточно быстро, основные затраты времени приходятся на раскладку по полям структур. Это в общем случае, когда соответствие определяется по названиям полей и тэгов. Как альтернатива, загнать результат парсинга в строку в памяти, а потом разобраться с ней перебором байтиков и явного присвоения полей структур в коде. То есть вызов в цикле метода, определяющего следующую пару название+значение и анализ в case. Кода на прикладной уровне больше, но скорость работы должна быть заметно выше.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
ЭДО
В общем-то да. Вызываешь класс который делает работу и не паришься, что там внутри происходит ...
Но здесь важно, что бы решения из концептуальных примеров с десятью записями адекватно работали
на больших объёмах реальных данных, в т.ч. с индикацией процесса выполнения.
Не было вопросов на компьютерах с разными версиями и настройками Windows, правами ползователей
и терминальными сессиями, антивирусами и установленными компонентами и т.д. Вот что хочется.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
ЭДО
Ну у меня была другая мысль - пойти по Вашему пути, но без обработок внутри скрипта.
Т.е. двумя операторами тупо выгрузить любой XML вот в такой QUEUE и дальше уже ручками его разбирать ...
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
ЭДО
Это хорошо работает на небольших xml. У меня, в основном, такие и есть. С долгим разбором столкнулся в одном магазине при запросе всд в Меркурии, когда там накопилось много непогашенных справок. В такой узкой точке можно применить оптимизацию.
Прогрессор вешать на разбор отдельного файла потребности не возникало. Когда получается и разбирается набор файлов, то в окне отображается операция и название файла.
Прогрессор вешать на разбор отдельного файла потребности не возникало. Когда получается и разбирается набор файлов, то в окне отображается операция и название файла.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
ЭДО
Те же яйца, только в профиль: viewtopic.php?t=4976
- Завернул всё в класс;
- Предельно упростил рабочий код;
- Добавил пример получения данных контрагентов.
- Завернул всё в класс;
- Предельно упростил рабочий код;
- Добавил пример получения данных контрагентов.
За теми кто отстал - не возвращаться. (С) Кодекс