ЭДО

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

ЭДО

Сообщение Admin »

Пробую у Гены узнать сколько стоит EasyXml.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

А оно ещё живое? То есть не только продаётся, но и разработчик с нами. И не тянет ли за собой Net фреймворк?
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

ЭДО

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

Admin писал(а): 09 Февраль 2023, 7:57Нет. Не хочет.
Штатный XML класс прекрасно считывает и парсит пакет ЭДО c русскими тегами (после конвертации в UTF-8) !
Пакет ЭДО взял с 1С. Т.е. можно разбирать объёкт XDOM как рассказывал Юрий и всё ... никаких проблем.
Работы на 2 (два) порядка меньше, чем с Меркурием. Хорошо, что проверил ... ;)
Вложения
Clarion XML.txt
(2.69 КБ) 102 скачивания
Последний раз редактировалось Игорь Столяров 10 Февраль 2023, 14:39, всего редактировалось 1 раз.
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

ЭДО

Сообщение Admin »

Игорь Столяров писал(а): 10 Февраль 2023, 12:22 Штатный XML класс прекрасно считывает и парсит пакет ЭДО c русскими тегами
глянем!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

Что-то я зарапортовался. Приведенный код на vbscript, а не на js. Xml и vbscript от одного производителя, работают совместно как родные. То есть нет вопросов можно ли или как. Обвязать в методы класса то, что нужно, особых сакральных знаний не требует. Код в приложении заметно проще и понятнее, чем в штатной обертке. Если какие-то дополнения для парсера xml будут появляться, то они все сразу доступны. Просто интересно стало, почему другие стремятся вместо этого юзать штатную обертку, через которую не все можно реализовать, которая уже вряд ли будет дорабатываться. Какие аргументы в пользу такого подхода?
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

ЭДО

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

finsoftrz писал(а): 10 Февраль 2023, 16:31 почему другие стремятся вместо этого юзать штатную обертку
Вполне может получиться так, что другие:

1. Хотят обеспечеть целостность работающего Win x32 приложения.
Например, мне не принципиально использовать именно штатный класс Clarion.
Очень долго я работал с библиотекой iXML, но потом Юрий показал несколько красивых приёмов
работы с штатным классом и я понял, что не надо юзать закрытый код и жить чужими приходами.
Время доказало правоту. Если бы был иной открытый XML класс - я бы с радостью потратил на него время. ;)

2. Не хотят возвращаться к тому DOS режиму работы, когда одна программа запускает другую или скрипт.
Они умеют это делать и ещё поддерживают программы с такими скриптами, но новых уже не хотят. :)
Им компфортно работать с CallBack, кодами ошибок, динамическим связыванием библиотек и т.д.

3. Ну и главное - инструмент по задаче. Вы пару раз упоминали, что в ЕГАИС заюзаны какие-то расширенные
свойства XML. Наверно, если бы я не смог это реализовать имеющися средствами - то искал бы другие ... :)
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

1. Открытость важна, когда можете самостоятельно разобраться в коде и внести необходимые корректировки. Я бы еще добавил сюда, когда можно это сделать за разумное время и потратив разумные усилия. А нам все надо быстро. Например, на переход от фиксированных тегов на xpath потребовалось совсем немного времени, пол дня от силы, и все заработало. Если бы я использовал штатную обертку, мне бы пришлось вначале немало повозиться в ней, войти в стресс от ковыряния в малопонятном коде, а затем, скорее всего, искать другой инструмент.

2. Dos тут ни при чем. VbScript это штатный инструмент во всех версиях windows. По умолчанию он всегда включен и под рукой. Хотя админ теоретически может его заблокировать, но с таким же успехом он может заблокировать и работу нашего приложения. Еще напомню, что динамические библиотеки это виндовая штука, а в линуксе (юниксе) исторически принято именно вызывать из одного приложения другое. Callback штука прикольная, но программить прикладные приложения таким способом особого кайфа нет. Именно по этой причине в кларионе придумали accept.

3. Погуглите xml xpath, это один из основных методов (отраслевой стандарт) в xml. В заголовке файла прописывается пространство имен, затем, в зависимости от установок в нем, специальными методами осуществляется поиск тегов с заранее неизвестными именами. То есть, один программист может задать в xml файле одни теги, другой другие, а мы должны все правильно понять и распарсить.
В упомянутой выше платной EasyXml такие возможности задекларированы. Но у меня большое подозрение, что используется Net фреймворк, не хотелось бы завязывать свои приложения напрямую на него.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3284
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 48 раз
Контактная информация:

ЭДО

Сообщение Дед Пахом »

finsoftrz писал(а): 10 Февраль 2023, 18:16 Но у меня большое подозрение, что используется Net фреймворк
Не используется, и хватит уже спекуляций, проще прямо спросить.
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

Я прямо и спросил, никто не ответил. 6 постов вверх, читаем внимательнее. :-)
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

Если действительно дополнительных зависимостей нет и заявленные возможности работают, то как вариант, если не хочется vbscript. Написано, что продается в сырцах и стоит приемлемые деньги.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

ЭДО

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

finsoftrz писал(а): 10 Февраль 2023, 18:16 Погуглите xml xpath, это один из основных методов (отраслевой стандарт) в xml
Просто язык запросов. Конечно удобно. :)
Кстати, по описанию, CapeSoft xFiles 4 тоже неплох.
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

ЭДО

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

finsoftrz писал(а): 10 Февраль 2023, 18:32 если не хочется vbscript
Ну никто не против басика скриптов ... Мы например, используем скрипты для работы с CryptoPro и файлами.
Причина та же, они готовые на сайте - бери и работай. Конечно есть и API - но это же думать надо ... :)

Но всё равно, осадочек-то остаётся ... Есть в самой методе что-то нехорошее (кроме вопросов безопасности).
Когда оптимизированное C компилятором x32 ООП приложение в 2023 г.составляет текстовый файл для того,
что бы запустить потом интерпретатор и выполнить построчно текстовый код ... Даже для CURL и ZIP. :(

Это как на элитном спорткаре развозить ящики с мандаринами по ларькам ! ;)
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

Да, осадочек остаётся. Но корни вопроса в том, что мы работаем с мейнстримными технологиями из инструмента, завершившего свое развитие. Альтернатива использовать или самому писать какие-то достаточно сложные библиотеки. У этих библиотек априори будет мало пользователей, чтобы всесторонне протестировать и поддерживать в актуальном состоянии. С другой стороны, мы имеем все готовое с примерами на все случаи жизни и сам код скриптов достаточно простой и понятный, проверенный огромным количеством людей. Из кларионовских программ юзают ведь sql скрипты, а не не низкоуровневый сишный код, и ничего.
Для себя я придерживаюсь такого мнения. Если есть возможность использовать что-то на уровне библиотек и этот код достаточно понятен и потенциально в нем не предвидится опасности, то лучше использовать библиотеки. А со сложными вещами, такими, как парсер xml или офисные пакеты, лучше работать через скрипты. Локально это vbscript, а если с внешним миром, то это php.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

ЭДО

Сообщение finsoftrz »

Для curl и zip скрипты не надо. Для curl я использую curl.exe, не curlib. Так как изначально это юниксовое приложение и все примеры в сети для exe. Для zip используется старый библиотечной вариант. Для 7z используется exe, хотя там тоже можно через библиотеку, но для клариона не попадалось решения.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

ЭДО

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

finsoftrz писал(а): 11 Февраль 2023, 10:36 Локально это vbscript
Просто интересно. Через Ваше решение с VBScript можно загружать из XML вложенные файлы
(содержание тегов в кодировке BASE64 большого и неизвестного заранее размера) ?
Для штатного класса XML я эту фишку сделал (с подсказки Юрия) в своё время.

Забавно, что сейчас полез читать справку CapeSoft xFiles 4 - и у них это сделано через промежуточный
вариант "Level-Up" который я тоже прошёл в своё время (и предлагал для класса cJSON). ;)
Единственно, что они красиво вывернулись с определением, что в теге файл - через имя поля в Queue:

Код: Выделить всё

MyXmlList Queue
...
TheDate   Long,Name('TheDate | @d6')
TheImage  &String,Name('TheImage | &String')
  end
...
DisposeQueue(Images)  
Хорошо. Игорь это увидел, хотя сама реализация через список с ANY полями интересней указателей на строки ... ;)
Make Clarion Great Again ! 😎
Ответить