cJSON: Формат полей для вложенных структур
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Да, скорость загрузки реально увеличилась раз в 5 (пять) !
И изменился сам процесс загрузки:
- Ранее индикатор двигался более-менее равномерно;
- Теперь он быстро пробегает и подвисает в конце.
(напоминает запись под Logout / Commit)
И изменился сам процесс загрузки:
- Ранее индикатор двигался более-менее равномерно;
- Теперь он быстро пробегает и подвисает в конце.
(напоминает запись под Logout / Commit)
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
cJSON: Формат полей для вложенных структур
Игорь, а не проще было вынести прогрессор за пределы парсинга? У Вас просмотривается список файлов на предмет нужных, вот при этом просмотре и повесить стандартным образом.
C6/C11, ШВС, tps/btrieve.
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
cJSON: Формат полей для вложенных структур
Это зависит от структуры json. Колбэк вызывается на выходе из каждого объекта {} или массива []. Если у Вас последний (или близко к концу) объект содержит длинные строки или очень много строк/чисел, то это может казаться подвисанием.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Это иное. Если мы перебираем заголовки файлов в папке - то конечно можно повесть индикатор по кол-ву файлов.
А если мы загружаем из файла большой JSON пакет в котором тысячи тегов - то теперь есть индикатор в ParseCallback().
Сейчас всё более - менее красиво и гармонично работает. Сейчас пойдём в ещё одну тёмную сторону - DIM внутри QUEUE.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Именно так и есть ! В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
cJSON: Формат полей для вложенных структур
Обновил cjson.clw, теперь колбэк вызывается и для длинных строк. Номер версии не менял.Игорь Столяров писал(а): ↑03 Январь 2023, 15:33 В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.
С уважением, ДП
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
cJSON: Формат полей для вложенных структур
Извращенцы... Кстати, перед новым годом тоже делал размещение сертификатов в web модуле системы электронных заказов. Но решили, что лучше в jpeg - на сайте открывается аналогично pdf, а можно вставлять в печатную форму, как раньше часто делали. Типа совместимость без лишних телодвижений.Игорь Столяров писал(а): ↑03 Январь 2023, 15:33Именно так и есть ! В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Зависит от цели действия. Если показать в броузере - то удобней картинку.
Если Вы хотите, что бы документ был где-то распечатан именно в том виде как Вы его создали - то PDF.
(Print Data Format - он собственно для этого и был создан)
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
cJSON: Формат полей для вложенных структур
Выясняли, поставщики присылают сканы сертификатов по разному, чаще не в pdf. На сайтах аналогично. Выгрузка в pdf это дополнительное телодвижение, так как сертификаты используются и в кларионовском приложении для вставки в печатные формы. У клиента были, в основном, jpeg и bmp. Bmp большой, сказали, пересохраним все в jpeg, если размещать на сайте. Pdf рассматривался тоже, но у клиента тот самый сервер без патчей, на котором, в частности, image2pdf не работает. Обновлять это целая эпопея. Потом попробовал jpeg, все классно, нафига козе баян.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Если позволите - более корректный пример вызова индикатора.
(иначе он не работает при повторном вызове распарса, т.к. curPercent уже = 100)
(иначе он не работает при повторном вызове распарса, т.к. curPercent уже = 100)
Код: Выделить всё
jsonFactory Class(cJSONFactory)
ParseCallback Procedure(Long pInputLength, Long pCurrentPos, Long pCurrentDepth), Derived
end
curPercent Long, Auto, Static
Code
curPercent = 0
Root &= jsonFactory.ParseFile(sFileName1 ...)
If Not (Root &= Null) ...
...
curPercent = 0
Root &= jsonFactory.ParseFile(sFileName2 ...)
If Not (Root &= Null) ...
...
jsonFactory.ParseCallback Procedure(Long pInputLength, Long pCurrentPos, Long pCurrentDepth)
newPercent Long, Auto
Code
newPercent = (pCurrentPos / pInputLength * 100)
If newPercent > curPercent
curPercent = newPercent
printd('ParseCallback(%i, %i, %i): progress %i%%', pInputLength, pCurrentPos, pCurrentDepth, curPercent)
end
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
В процедуре json::LoadFile() переменная pvData - рудимент (не используется).
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
Добрый день !
Скажу сразу - долго сам пытался разобраться, но не получилось победить индиктор загрузки.
Посмотрите пожалуйста прикреплённый пример.
Специально сделал загрузку одного Queue без структур и файлов и т.д. (а боевые структуры в несколько раз тучнее)
Вроде бы всё просто как детская игра в крысу.
Но у меня после заполнения индикатора идёт подвис на 40-50 сек. и только потом операция выполнена ...
В чём я не прав ? Спасибо за помощь регионам.
Скажу сразу - долго сам пытался разобраться, но не получилось победить индиктор загрузки.
Посмотрите пожалуйста прикреплённый пример.
Специально сделал загрузку одного Queue без структур и файлов и т.д. (а боевые структуры в несколько раз тучнее)
Вроде бы всё просто как детская игра в крысу.
Но у меня после заполнения индикатора идёт подвис на 40-50 сек. и только потом операция выполнена ...
В чём я не прав ? Спасибо за помощь регионам.
Последний раз редактировалось Игорь Столяров 09 Январь 2023, 17:25, всего редактировалось 1 раз.
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
cJSON: Формат полей для вложенных структур
Такое вот сообщество, помогают как могут.
Давайте уже закроем эту ветку и откроем новую про индикатор.
Давайте уже закроем эту ветку и откроем новую про индикатор.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
cJSON: Формат полей для вложенных структур
В новый год - с оптимизмом !
Переносить записи в форуме могут только цветные (имена пользователей).
Я просто больше не буду в эту тему отправлять сообщения.
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
cJSON: Формат полей для вложенных структур
А я в этой теме больше не буду отвечать, это последний раз
После завершения MyJSon.ParseFile и заполнения шкалы отрабатывает долгоиграющая Root.ToQueue(qList).
После завершения MyJSon.ParseFile и заполнения шкалы отрабатывает долгоиграющая Root.ToQueue(qList).
С уважением, ДП