Чисто гипотетически !
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5307
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Чисто гипотетически !
Я неправильно сказал. Запуск не через run, а в виде процесса. Это позволяет нашему приложению контролировать вызываемую программу и прерывать ее работу принудительно, если надо. То есть как-то так:
loc:ok=SELF.StartProcess('wscript ' & clip(SELF.FileNameScript))
loc:ok=SELF.StartProcess('wscript ' & clip(SELF.FileNameScript))
C6/C12, ШВС, tps/btrieve.
finsoftrz
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
А как это по скорости?
Пробовал ли кто распарсить серьезный файл, мегабайт на 100?
Сколько занимает по времени?
Пробовал ли кто распарсить серьезный файл, мегабайт на 100?
Сколько занимает по времени?
Constantine
- Игорь Столяров
- Ветеран движения
- Сообщения: 8077
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Чисто гипотетически !
Вы даже не представляете, как я с Вами согласен в этом вопросе !finsoftrz писал(а): 19 Июнь 2019, 9:34В реальной жизни парсинг xml не должен быть чем-то, на что надо тратить много времени.

Но, блин, реалии далеки от этого, причём независимо от выбора конкретной технологии парсинга XML …

Make Clarion Great Again ! 
Игорь Столяров
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
Ага!finsoftrz писал(а): 19 Июнь 2019, 9:39loc:ok=SELF.StartProcess('wscript ' & clip(SELF.FileNameScript))
Т.е., все-таки, через Shell...
Constantine
- Игорь Столяров
- Ветеран движения
- Сообщения: 8077
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Чисто гипотетически !
Вопрос не корректный. Скорость парсинга XML документа очень сильно зависит от его структуры.
Одно дело залить линейный список и совсем другое выковыривать 6-ой аттрибут в 7-ом уровне вложенности тегов.

Последний раз редактировалось Игорь Столяров 19 Июнь 2019, 9:48, всего редактировалось 1 раз.
Make Clarion Great Again ! 
Игорь Столяров
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
Это верно.
Но, при таких размерах, хотелось бы просто получить некое общее представление.
Но, при таких размерах, хотелось бы просто получить некое общее представление.
Constantine
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5307
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Чисто гипотетически !
Через win api CreateProcess.Constantine писал(а): 19 Июнь 2019, 9:43Ага!finsoftrz писал(а): 19 Июнь 2019, 9:39loc:ok=SELF.StartProcess('wscript ' & clip(SELF.FileNameScript))
Т.е., все-таки, через Shell...
C6/C12, ШВС, tps/btrieve.
finsoftrz
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Constantine
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
Наткнулся на примерчик парсинга через OLE (MSXML2.DOMDocument): http://www.script-coding.com/XMLDOMscripts.html
А так кто-нибудь пробовал?
По-моему, должно быть быстрее, чем через файл.
А так кто-нибудь пробовал?
По-моему, должно быть быстрее, чем через файл.
Constantine
Чисто гипотетически !
Если чисто теоретически - последний раз разбирал XML( SCORM 2004 manifest) питоноскриптом - пакетом xmltodict https://pypi.org/project/xmltodict/, потом можно и в JSON одной строкой выгрузить. Если через файл или входной-выходной поток - удобно... Правда, этот прожект с Кларионом слабо связан.
Yufil
- Игорь Столяров
- Ветеран движения
- Сообщения: 8077
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Чисто гипотетически !
Так это и есть парсинг XML скриптом … Там везде идёт 3-ей строкой: xmlParser.load "C:\Sample.xml" …

Make Clarion Great Again ! 
Игорь Столяров
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
Не совсем так. Это - OLE-объект, которому можно посылать команды.
Если делать через Shell/CreateProcess, результаты можно поместить только в файл, который потом нужно будет считывать.
А таким образом можно результаты поместить сразу в переменную/queue, что может быть гораздо удобнее.
Если делать через Shell/CreateProcess, результаты можно поместить только в файл, который потом нужно будет считывать.
А таким образом можно результаты поместить сразу в переменную/queue, что может быть гораздо удобнее.
Constantine
- Игорь Столяров
- Ветеран движения
- Сообщения: 8077
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Чисто гипотетически !
Тут вопрос в том, какие результаты … Например OLE интерфейс Microsoft Word клинит при длине строки более 255 символов.
Как здесь ? Не знаю - надо пробовать. А к чему всё это ? Чем Вас не устраивает парсер Clarion XML ? Не надо никаких файлов
и внешних запусков вообще - Юрий где-то в форуме детально описывал технологию разбора XML - даже я понял …

Make Clarion Great Again ! 
Игорь Столяров
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Чисто гипотетически !
У кларионовского парсера (и всех внешних, которые я пробовал (IQXML и т.п.)) были проблемы с Win1251... 
А вдруг, у Microsoft их нет?

А вдруг, у Microsoft их нет?

Constantine
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5307
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Чисто гипотетически !
Фишка в том, что с точки зрения приложения это все скрыто в классе.Constantine писал(а): 19 Июнь 2019, 10:25Не совсем так. Это - OLE-объект, которому можно посылать команды.
Если делать через Shell/CreateProcess, результаты можно поместить только в файл, который потом нужно будет считывать.
А таким образом можно результаты поместить сразу в переменную/queue, что может быть гораздо удобнее.
Код: Выделить всё
getCountrys_r routine
DATA
lor:queue queue, pre()
lor:name string(128), name('dt:name')
lor:guid string(80), name('bs:guid')
.
CODE
loc:err=0
Loc:NameTmp=Loc:NameOutTmp
Loc:NameVbsTmp=GetNameTmp(FsAccess:ActiveUserDir,'vbs',0)
Loc:NameOutTmp=GetNameTmp(FsAccess:ActiveUserDir,'txt',0)
fsXmlPar.init(Loc:NameTmp,Loc:NameVbsTmp,Loc:NameOutTmp)
fsXmlPar.LoadQueue('dt:country','lor:queue',lor:queue)
fsXmlPar.MakeScript(1)
if fsXmlPar.ErrorCode<>0
FsMessagePr('Ошибка! ' & clip(fsXmlPar.ErrorMessage))
loc:err=1
.
fsXmlPar.kill
C6/C12, ШВС, tps/btrieve.
finsoftrz
Вернуться в «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
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)