ЭДО

Clarion, Clarion 7

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

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

ЭДО

Сообщение finsoftrz »

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

ЭДО

Сообщение finsoftrz »

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

ЭДО

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

finsoftrz писал(а): 12 Февраль 2023, 10:29 А так, через vbscript реализуется все, что относится к xml.
В этом сомнений нет никаких. Но торопиться не надо с ответом ... ;)
А можно ли добытое vbscript затянуть потом для обработки в Clarion ?
Потому что проверенная десятилетиями технология "в кьюшку через текстушку"
(пардон за каламбур !) - здесь ведь не прокатит однозначно ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

Файл в строку через win api прокатит? Это тривиально в кларионе. При потребности, можно зарыть в классе парсера.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

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

ЭДО

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

finsoftrz писал(а): 12 Февраль 2023, 12:38 Файл в строку через win api прокатит?
Да, конечно. Так можно передать бинарные данные из скрипта в программу.

Но получится, что отправив запрос на документы оператору сабжа - мы потом его ответ в XML
запишем в ФАЙЛ, создадим ФАЙЛ с текстом скрипта и запустим его в VBScript, который
запишет результат парсинга в ФАЙЛ и на каждый бинарный тег с документом создаст отдельный ФАЙЛ.
Отжужав, скрипт вернёт всю эту красоту программе, которая загрузит ФАЙЛ с ответом в список и
каждый ФАЙЛ с документом в БД программы ... и вроде как получается, что запрос мы отработали.

Мне одному кажется, что слово "ФАЙЛ" в этой технологии доминирует ? ;)
А ведь старый штатный класс Clarion вот это вот всё может делать в памяти .... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

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

ЭДО

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

finsoftrz писал(а): 12 Февраль 2023, 14:22 Тогда на помощь приходят скрипты.
Да, потому что это отлаженное решение (которым массово пользуются).
Интересно, что CapeSoft xFiles 4 тоже какая-то движуха прям, новые релизы в этом году и т.д.
Значит кому-то это нужно, есть юзеры, с этим работают. Не дохлый класс. И это хорошо ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

В егаис так и делается у меня с файлами. Вначале создаётся xml файл с запросом, с помощью curl.exe он отправляется в утм, результат работы возвращается в другой файл. Создаётся файл скрипта для парсинга, получаем файл с результатом, забираем его содержимое в кьюшки.
Получается ряд временных файлов. Наверно, используя curlib и какую-то библиотеку для парсинга xml, можно все сделать в памяти и это будет быстрее. Это факт. Пока скорость устраивала. Ну, пусть будет, условно, 3 сек против 1 сек. На вспомогательной задаче не критично. Зато быстро реализовать и проще отладить. Получили результат в файл, его всегда можно посмотреть. Я, например, для егаис сохраняю результаты ответа утм на типовой запрос в отдельных файлах. То есть, запрос на списание - всегда есть файл с последним ответом на такой тип запроса. Периодически бывает нужно проверить его содержимое, когда происходит какая-то нештатная ситуация. Или когда у нас возникает какая-то непонятки при парсинга, временный файл со скриптом не удаляем, а доводим скрипт до рабочего состояния, не перекомпилируя каждый раз приложение, а потом результаты учитываем в классе, когорый генерит подобный скрипт. Время решения проблемы сокращается в разы.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

ЭДО

Сообщение Admin »

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

ЭДО

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

Admin писал(а): 12 Февраль 2023, 15:12 Интересно было бы подменить налету ваш файл...
Именно так и было. В 2008 г. нам отказались сертифицировать систему для БКИ сделанную
по технологии СМО (слишком много файлов). Так это называется в ЦБ РФ. Переделали ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ЭДО

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

Admin писал(а): 12 Февраль 2023, 15:12 Интересно было бы подменить налету ваш файл... и что бы вы его подписали.
Делается на раз-два. "И теперь уже не я должен государству, а оно мне." (А. Райкин).
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

ЭДО

Сообщение finsoftrz »

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

ЭДО

Сообщение finsoftrz »

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

ЭДО

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

finsoftrz писал(а): 12 Февраль 2023, 16:15 Там тысячи файлов, раскиданных по разным каталогам.
Вот видите - Вы там уже были и всё это многообразие видели.
Вы бы конечно не стали там что-то удалять или улучшать.
Но сама возможность беспредела в таком подходе напрягает. ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить