Класс tXML (интерфейс для штатного CpXML)

Программы на Clarion, шаблоны, библиотеки и пр.

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

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

Класс tXML (интерфейс для штатного CpXML)

Сообщение finsoftrz »

Игорь Столяров писал(а): 19 Февраль 2023, 22:45
finsoftrz писал(а): 19 Февраль 2023, 22:24 говорил, что ранее win10 не поддерживает
Не помню - нужно смотреть на контекст.
Если о программах - то мы поддерживаем работу на всех Windows до XP включительно. Хотя это и не просто. ;)
Значит, жизнь заставила сменить концепцию. Я точно помню этот момент, как Вы меня убеждали, что не надо поддерживать всякое барахло. :-) Да и на сайте у Вас такая информация проходила.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

Лично я всегда был за то, что бы работать с софтом, который поддерживается производителем.
Мысль это логичная и понятная. Для ОС - это и есть Windows 10 (которая уже не продаётся).
Но пользователям не прикажешь, особенно в текущей экономической обстановке ...
Последний раз редактировалось Игорь Столяров 20 Февраль 2023, 8:59, всего редактировалось 1 раз.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Класс tXML (интерфейс для штатного CpXML)

Сообщение finsoftrz »

Игорь Столяров писал(а): 19 Февраль 2023, 21:20 Cогласен ! Если говорить о запуске внешних скриптов под интерпретатором, то с радостью бы использовал интерфейс к Pithon или Lua ...
Не вижу ничего плохого и в VBScript, мы же создаём отчёты через VBA ... но без запуска внешних скриптов и обмена текстовыми файлами.
Есть ещё active script технология, позволяющая использовать скриптовые движки внутри приложения. Довольно старая, встроена во все используемые сейчас версии Windows. Vbscript там есть изначально. Чтобы интегрировать её в кларион, надо определённые знания, так как предполагаются com объекты. Михаил продаёт соответствующую библиотеку, не дёшево. Тогда можно без файлов.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

finsoftrz писал(а): 20 Февраль 2023, 8:56 Михаил продаёт соответствующую библиотеку, не дёшево.
Ну это большое инструментальное средство для работы с COM объектами.
А здесь нужен сгенерённый один раз COM интерфейс к ActiveScript и это навсегда.
Может поспрашивать в форуме, вдруг кто-то его юзает ? :shock:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Класс tXML (интерфейс для штатного CpXML)

Сообщение finsoftrz »

Ну так, Михаил. На хабе есть тема.
На мой вкус, не люблю я com объекты и activeX в кларионе. Не родные они.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

Привет всем !

В первом сообщении обновлён сабж до версии 27.02.2023 г.
-----------------------------------------------------------------------------
- Добавлены правила для игнорирования полей структуры данных;
- Правило игнорирования полей расширено на теги (в т.ч. вложенные);
- Добавлен метод загрузки GROUP из тега (в т.ч. вложенные теги и аттрибуты);

и собственно, ради чего вот это вот всё началось:
- В примере показан полный (!!!) академический парс произвольного документа ЭДО. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Класс tXML (интерфейс для штатного CpXML)

Сообщение Губин Игорь »

Игорь Столяров писал(а): 19 Февраль 2023, 10:25 Загрузка русских XML (в кодировке Windows-1251);
Из пожеланий: вставить возможность кодировки юникод.

Было бы хорошо иметь возможность читать разные типы кодировок, но это, уже, барство. :facepalm:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

Губин Игорь писал(а): 28 Февраль 2023, 5:52 Из пожеланий: вставить возможность кодировки юникод.
Конечно. Это было сделано изначально. :)
см. параметр xVid_ в методе Init - он определяет тип данных в параметре xStr_:

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

! Создать новый объект
ToyXML.Init           Procedure(byte xVid_,*? xStr_,UShort xProgress_ = 0)  !,Byte,Proc
  Code
  Self.Kill  ! Убрать предыдущий объект

  Execute xVid_                                                 ! <-- Тип данных
    Self.XmlDoc &= XMLStringToDOM(TXM::LoadStrFromFile(xStr_))  ! 1. Файл   UTF-8
    Self.XmlDoc &= XMLStringToDOM(                     xStr_ )  ! 2. Строка UTF-8
    Self.XmlDoc &= XMLStringToDOM(TXM::XmlFileToStrUTF(xStr_))  ! 3. Файл   ANSI
    Self.XmlDoc &= XMLStringToDOM(TXM::StrAnsiToUTF(   xStr_))  ! 4. Строка ANSI
  end
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Класс tXML (интерфейс для штатного CpXML)

Сообщение Губин Игорь »

Игорь Столяров писал(а): 28 Февраль 2023, 6:40 Конечно. Это было сделано изначально.
Тогда скачиваю и начинаю тестировать на идиотских XML :facepalm:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

В первом сообщении обновлён сабж до версии 01.03.2023 г.
-----------------------------------------------------------------------------
- Добавлены методы для получения полных имён тегов и полей;
- Добавлен контроль соответствия структуры данных и XML пакета;
- Формирование дочернего списка вынесено в отдельный метод;

- В примере показан полный парс документа ЭДО за один проход (+ отдельно списки).
За теми кто отстал - не возвращаться. (С) Кодекс
Igor_s
Новичок
Сообщения: 8
Зарегистрирован: 03 Июнь 2019, 14:32

Класс tXML (интерфейс для штатного CpXML)

Сообщение Igor_s »

Игорь, не подскажете
у нас в DLL при обращении к методам класса MyXml
возникает ошибка Access Violation
MyXml Class(ToyXML) - в Global Includes
там же Include('tXML.inc')
У нас Clarion 10
Заранее Спасибо !
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

Igor_s писал(а): 02 Март 2023, 10:54у нас в DLL
Проверьте пожалуйста, что бы у Вас в проекте DLL были определены
опции самого CpXML (аналогично примеру):

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

_XmlLibDllMode_=>0
_XmlLibLinkMode_=>1
1.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Igor_s
Новичок
Сообщения: 8
Зарегистрирован: 03 Июнь 2019, 14:32

Класс tXML (интерфейс для штатного CpXML)

Сообщение Igor_s »

Игорь, у нас не Project
а APP на EXE и APP на DLL
Извините, что сразу не написал
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Класс tXML (интерфейс для штатного CpXML)

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

Igor_s писал(а): 02 Март 2023, 13:13 Игорь, у нас не Project
А я и не говорил ничего про Project ... ;)
Настройки проекта любого APP (в т.ч. и DLL, в т.ч. и C10 и у Вас тоже есть)
Вы можете открыть через главное меню - см. рисунок, я обвёл красненьким.

1.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Igor_s
Новичок
Сообщения: 8
Зарегистрирован: 03 Июнь 2019, 14:32

Класс tXML (интерфейс для штатного CpXML)

Сообщение Igor_s »

Игорь, большое спасибо !
все получилось !
Ответить