Чисто гипотетически !

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 19 Июнь 2019, 12:55

Привет, Юра!
А с майкрософтовским парсером ты не игрался?

Yufil
Ветеран движения
Сообщения: 1170
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Чисто гипотетически !

Сообщение Yufil » 19 Июнь 2019, 14:56

Привет, Костя!
Насколько мне известно, кларионовский парсер - это Expat, он тоже стандартный. Парсер целиком написан на сях и не нуждается во внешних интерфейсах. Зачем Microsoft?

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 19 Июнь 2019, 15:08

Есть гигантская структура (ок. 1.5 Гб), состоящая из нескольких тысяч связанных между собой в цепочки xml-файлов разного размера (от 400 Кб до 100+ Мб). Ее нужно парсить, но не всю за раз, а по частям примерно по 500 Мб. Делать это нужно каждый месяц.
Соответственно, встает вопрос быстродействия. Сейчас сделано на С, но на кларионе было бы лучше.
Поэтому и интересуюсь...

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2322
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Чисто гипотетически !

Сообщение Дед Пахом » 19 Июнь 2019, 15:19

Парсер Microsoft (msxml6) это EasyXML
С уважением, ДП

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 19 Июнь 2019, 15:23

Дед Пахом писал(а):
19 Июнь 2019, 15:19
Парсер Microsoft (msxml6) это EasyXML
По сути, это dll-обертка над OLE. Вряд ли будет работать быстрее, чем напрямую...

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2322
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Чисто гипотетически !

Сообщение Дед Пахом » 19 Июнь 2019, 15:25

Constantine писал(а):
19 Июнь 2019, 15:23
По сути, это dll-обертка над OLE.
Это не dll-обертка над OLE, это просто COM dll с сотней COM объектов.
С уважением, ДП

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 19 Июнь 2019, 15:28

Возможно. Не знаю. А кто-нибудь ее юзал на больших объемах?

Yufil
Ветеран движения
Сообщения: 1170
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Чисто гипотетически !

Сообщение Yufil » 19 Июнь 2019, 15:49

Вряд ли скорость парсинга для MS и Expat сильно отличается ( коллега Aragorn мерил ).
А померить достаточно просто. На любое кларионовское окно добавь кнопку, в качестве обработчика шаблон ViewXML
и попробуй загрузить XML-файл.

... А цепочки связанных xml-файлов это круто... Может быть, поюзать что-то более подходящее, чем Clarion ( Spark - R - Julia - Pandas )?

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2322
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Чисто гипотетически !

Сообщение Дед Пахом » 19 Июнь 2019, 15:54

Constantine писал(а):
19 Июнь 2019, 15:28
А кто-нибудь ее юзал на больших объемах?
Google в помощь.
С уважением, ДП

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 19 Июнь 2019, 15:56

Уже юзается... Есть софтина на С, которая извлекает нужные данные и кладет их в общую область памяти, из которой я их и забираю. Проблема в том, что это нужно синхронизировать (т.е. нужно отлавливать момент окончания записи, а уже потом читать). Вторая проблема в том, что пишет она в своем формате, который потом тоже нужно разбирать. В итоге, процесс занимает 3-4 часа. Хотелось бы ускорить... :-)

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1394
Зарегистрирован: 06 Ноябрь 2014, 12:48

Чисто гипотетически !

Сообщение finsoftrz » 19 Июнь 2019, 16:17

Цепочки xml файлов - это, случаем, не ОДА (http://oda.su) ? Там вместо обычной базы xml. Наследование. Парсер на C. Помнится, лет 10 назад мне их вождь в частной беседе мозг выносил. Отмирающие файлы, как клетки головного мозга. Ms и Oracle вели исследования в этом направлении, у них не получилось, а у нас получилось. В общем, ощущение было, как к фрицам в лабораторию попал... :-)
Рязань решает.

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 20 Июнь 2019, 8:15

Нет, не оно. Там большая буржуйская софтина, которая занимается чем-то вроде обработки строительных смет. Она-то и выгружает данные в таком виде.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4323
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Чисто гипотетически !

Сообщение Игорь Столяров » 20 Июнь 2019, 8:25

Constantine писал(а):
20 Июнь 2019, 8:15
Там большая буржуйская софтин
И эта "буржуйская софтина" выгружает XML в кодировке Win-1251 ?!
Чудны дела рук детей твоих, господи … :)
«V» значит Вендетта !

Constantine
Активист
Сообщения: 148
Зарегистрирован: 07 Февраль 2017, 16:58

Чисто гипотетически !

Сообщение Constantine » 20 Июнь 2019, 8:56

Гм...
Это связанные вещи, но я этого не говорил...
Есть задача: ускорить обработку больших xml-файлов. Для этого нужно что-то написать на кларионе. Очевидно, что штука получится большая и серьезная, поэтому логично применять ее и для решения других задач, связанных с обработкой xml. А для этого нужна нормальная поддержка win1251.
Что вызвало Ваше удивление?

Yufil
Ветеран движения
Сообщения: 1170
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Чисто гипотетически !

Сообщение Yufil » 20 Июнь 2019, 9:19

Я в модуле cpxml.dll шестнадцатеричным редактором правил строку ( могу и ошибаться ) windows-1250 на windows-1251. Тоже работает, правда только с файлами, из памяти не... Но потом разобрался с UTF-8 и отказался от этой идеи

Ответить