ЭДО
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
Мне такое не надо было. А так, через vbscript реализуется все, что относится к xml. На вскидку, если надо вытащить вложение, то его можно сохранить в виде обычного файла средствами vbscript, не создавая в кларионовском приложении никаких структур для этого.
C6/C12, ШВС, tps/btrieve.
finsoftrz
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
На всякий случай надо заметить, что вопрос либо-либо не стоит. Вариант с vbscript позволяет быстро решить любую задачу, связанную с xml. Основное назначение это преобразование сложных структур в простые, с которыми легко работать из клариона. Для отдельных задач можно использовать и другие подходы. По большому счету, чтобы распарсить xml, надо считать файл в строку (например, через win api), а потом пробежаться в ней по байтикам, проверяя их по определённым правилам. У меня есть упрощённая реализация для сохранения содержимого tps файлов базы данных в xml и загрузка их оттуда. Это чистый код на кларионе. Разумеется, о полноценной поддержке всех спецификаций xml речь не идёт.
C6/C12, ШВС, tps/btrieve.
finsoftrz
- Игорь Столяров
- Ветеран движения
- Сообщения: 8081
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
ЭДО
В этом сомнений нет никаких. Но торопиться не надо с ответом ...finsoftrz писал(а): 12 Февраль 2023, 10:29 А так, через vbscript реализуется все, что относится к xml.

А можно ли добытое vbscript затянуть потом для обработки в Clarion ?
Потому что проверенная десятилетиями технология "в кьюшку через текстушку"
(пардон за каламбур !) - здесь ведь не прокатит однозначно ...

Make Clarion Great Again ! 
Игорь Столяров
finsoftrz
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
В любом случае, затянуть результаты работы xml парсера из vbscript не должно быть трудным. Оно изначально предназначено, чтобы скриптом преобразовать сложную структуру в простую. Вопрос может быть в том, как распределить аыполняемую работу между скриптом и кодом на кларионе. Разумно, когда в прикладной приложении на кларионе минимум кода и он максимально прост и понятен.
C6/C12, ШВС, tps/btrieve.
finsoftrz
- Игорь Столяров
- Ветеран движения
- Сообщения: 8081
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
ЭДО
Да, конечно. Так можно передать бинарные данные из скрипта в программу.
Но получится, что отправив запрос на документы оператору сабжа - мы потом его ответ в XML
запишем в ФАЙЛ, создадим ФАЙЛ с текстом скрипта и запустим его в VBScript, который
запишет результат парсинга в ФАЙЛ и на каждый бинарный тег с документом создаст отдельный ФАЙЛ.
Отжужав, скрипт вернёт всю эту красоту программе, которая загрузит ФАЙЛ с ответом в список и
каждый ФАЙЛ с документом в БД программы ... и вроде как получается, что запрос мы отработали.
Мне одному кажется, что слово "ФАЙЛ" в этой технологии доминирует ?

А ведь старый штатный класс Clarion вот это вот всё может делать в памяти ....

Make Clarion Great Again ! 
Игорь Столяров
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
Можно отдельный, можно не отдельный. Все от задачи зависит. Ключевой момент это преобразование сложных структур в простые встроенным в винду скриптовым языком.
Издержки заключаются в создании временного файла со скриптом и обработка второго временного файла с результатом работы этого скрипта. Обычно это срыто в классе, формирующем скрипт и обрабатывающем результат его работы на стороне кларионовского приложения.
Стоит ли пугаться создания временных файлов? Ну так при формировании печатных форм создаётся много временных файлов (на каждую страницу). А если взять саму винду и разные приложения, там вообще тьма. То есть получаем каплю в море.
Смотреть надо на скорость работы. Сам виндовый парсер, вызываемой в vbscript, работает быстро. Больше времени занимает разложить в кларионовском приложении результат по кьшкам, когда используются универсальные механизмы. Я думаю, это можно оптимизировать, просто xml файлы большого объёма встречаются редко в имеющихся задачах. Опять таки, если вопрос в обеспечении скорострельности, то можно посмотреть и другие инструменты. Но мне чаще попадаются ситуации, когда возникает потребность и её решить надо в течении дня или быстрее. Нет времени выяснять, что может или не может парсер, корректно или не совсем он это делает, как вообще это с его помощью сделать. Тогда на помощь приходят скрипты.
Издержки заключаются в создании временного файла со скриптом и обработка второго временного файла с результатом работы этого скрипта. Обычно это срыто в классе, формирующем скрипт и обрабатывающем результат его работы на стороне кларионовского приложения.
Стоит ли пугаться создания временных файлов? Ну так при формировании печатных форм создаётся много временных файлов (на каждую страницу). А если взять саму винду и разные приложения, там вообще тьма. То есть получаем каплю в море.
Смотреть надо на скорость работы. Сам виндовый парсер, вызываемой в vbscript, работает быстро. Больше времени занимает разложить в кларионовском приложении результат по кьшкам, когда используются универсальные механизмы. Я думаю, это можно оптимизировать, просто xml файлы большого объёма встречаются редко в имеющихся задачах. Опять таки, если вопрос в обеспечении скорострельности, то можно посмотреть и другие инструменты. Но мне чаще попадаются ситуации, когда возникает потребность и её решить надо в течении дня или быстрее. Нет времени выяснять, что может или не может парсер, корректно или не совсем он это делает, как вообще это с его помощью сделать. Тогда на помощь приходят скрипты.
C6/C12, ШВС, tps/btrieve.
finsoftrz
- Игорь Столяров
- Ветеран движения
- Сообщения: 8081
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
ЭДО
Да, потому что это отлаженное решение (которым массово пользуются).
Интересно, что CapeSoft xFiles 4 тоже какая-то движуха прям, новые релизы в этом году и т.д.
Значит кому-то это нужно, есть юзеры, с этим работают. Не дохлый класс. И это хорошо !

Make Clarion Great Again ! 
Игорь Столяров
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
В егаис так и делается у меня с файлами. Вначале создаётся xml файл с запросом, с помощью curl.exe он отправляется в утм, результат работы возвращается в другой файл. Создаётся файл скрипта для парсинга, получаем файл с результатом, забираем его содержимое в кьюшки.
Получается ряд временных файлов. Наверно, используя curlib и какую-то библиотеку для парсинга xml, можно все сделать в памяти и это будет быстрее. Это факт. Пока скорость устраивала. Ну, пусть будет, условно, 3 сек против 1 сек. На вспомогательной задаче не критично. Зато быстро реализовать и проще отладить. Получили результат в файл, его всегда можно посмотреть. Я, например, для егаис сохраняю результаты ответа утм на типовой запрос в отдельных файлах. То есть, запрос на списание - всегда есть файл с последним ответом на такой тип запроса. Периодически бывает нужно проверить его содержимое, когда происходит какая-то нештатная ситуация. Или когда у нас возникает какая-то непонятки при парсинга, временный файл со скриптом не удаляем, а доводим скрипт до рабочего состояния, не перекомпилируя каждый раз приложение, а потом результаты учитываем в классе, когорый генерит подобный скрипт. Время решения проблемы сокращается в разы.
Получается ряд временных файлов. Наверно, используя curlib и какую-то библиотеку для парсинга xml, можно все сделать в памяти и это будет быстрее. Это факт. Пока скорость устраивала. Ну, пусть будет, условно, 3 сек против 1 сек. На вспомогательной задаче не критично. Зато быстро реализовать и проще отладить. Получили результат в файл, его всегда можно посмотреть. Я, например, для егаис сохраняю результаты ответа утм на типовой запрос в отдельных файлах. То есть, запрос на списание - всегда есть файл с последним ответом на такой тип запроса. Периодически бывает нужно проверить его содержимое, когда происходит какая-то нештатная ситуация. Или когда у нас возникает какая-то непонятки при парсинга, временный файл со скриптом не удаляем, а доводим скрипт до рабочего состояния, не перекомпилируя каждый раз приложение, а потом результаты учитываем в классе, когорый генерит подобный скрипт. Время решения проблемы сокращается в разы.
C6/C12, ШВС, tps/btrieve.
finsoftrz
Admin
- Игорь Столяров
- Ветеран движения
- Сообщения: 8081
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
ЭДО
Именно так и было. В 2008 г. нам отказались сертифицировать систему для БКИ сделанную
по технологии СМО (слишком много файлов). Так это называется в ЦБ РФ. Переделали ...

Make Clarion Great Again ! 
Игорь Столяров
Дед Пахом
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5313
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
ЭДО
Имя файла переменное. Надо его как-то вычислить.
Содержимое надо, как минимум, понимать, оно проверяется.
Содержимое не содержит ничего такого, что было бы полезно перехватывать.
Вредить проще другими способами. Например, перехватывая http запросы.
Вопросы с безопасностью встают там, где свободный доступ в интернет и неконтролируемая установка софта. И ничто не спасёт в таком случае, ни антивирь, ни брэндмауэр.
Содержимое надо, как минимум, понимать, оно проверяется.
Содержимое не содержит ничего такого, что было бы полезно перехватывать.
Вредить проще другими способами. Например, перехватывая http запросы.
Вопросы с безопасностью встают там, где свободный доступ в интернет и неконтролируемая установка софта. И ничто не спасёт в таком случае, ни антивирь, ни брэндмауэр.
C6/C12, ШВС, tps/btrieve.
finsoftrz
finsoftrz
- Игорь Столяров
- Ветеран движения
- Сообщения: 8081
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
ЭДО
Вот видите - Вы там уже были и всё это многообразие видели.
Вы бы конечно не стали там что-то удалять или улучшать.
Но сама возможность беспредела в таком подходе напрягает.

Make Clarion Great Again ! 
Игорь Столяров
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)