v1.46

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Основной тред
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Положил обновление v1.46 на наш публичный фтп в папку /cjson/1.46.0. Пока изменения такие:
- NEW: json::CreateArray(*GROUP[],...) overloaded functions create json array from passed array of groups.
- NEW: ToGroupArray(*GROUP[],...) overloaded methods save json array to a GROUP array.
- NEW: Options now can be passed as a cJSON object as well.
- FIX: Performance issue with the options.
Меня интересует главным образом не новый функционал (работает/нет или не так), а не отвалилось ли что-нибудь в старом? Изменения были не косметические, так что могло. Я проверил на самых простых примерах, но хорошо бы на реальных.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Какое замечательное у нас сообщество.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

Я тестирую релиз 1.46 с момента его выхода на всех своих (и не только) реальных проектах.
Если были бы вопросы - обязательно сообщил ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4845
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 43 раза

v1.46

Сообщение finsoftrz »

Из множества тем, открытых по cjson, я понял, что поросенок и кролик вместе это страшная сила. :lol:
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

finsoftrz писал(а): 01 Октябрь 2024, 18:03 поросенок и кролик
Места медвежонка, ослика и тигры - вакантны ! :D
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Дед Пахом писал(а): 28 Сентябрь 2024, 0:09 - FIX: Performance issue with the options.
.ToQueue с опциями стало шустрее в 4.5 раза на огромном (190 mb) json - время выполнения уменьшилось с 90 до 20-ти секунд. 206560 записей.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

Действительно, такой вопрос был года 2-3 назад ...
Мы тогда (с Вашей помощью) понавтыкали индикаторов загрузки через rh.ArrayCB() и как-то приняли реальность. :)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

v1.46 (04.10.2024)
NEW: (Experimental) Field names in options now can be specified as an array. For example this option: {"name":["password","salary"], "ignore":true} says that the fields "password" and "salary" should be ignored if "ignore" rule was not explicitly defined in named options.
По практике применения опций:
- 70% опций закрывают косяки Clarion, т.е. это JsonName / IsBool / Instance. И здесь ничего сделать низя. Проехали. :(

- но 15% опций - это применение Ignore к GROUP, потому что не обрабатывается содержание закрываемой GROUP.
И приходится перечислять весь состав GROUP ... иначе просто вообще разрушается структура данных.
В этом есть какой-то непонятный мне смысл ? И так как нет возможности указывать указывать место тега в структуре,
то происходит закрытие тега по имени во всех местах ... что уже совсем неправильно.

Данная опция, конечно, упрощает закрытие GROUP ... но может быть есть смысл решить вопрос полностью ?
Т.е. {"name":"GroupName", "ignore":true} закрывает GroupName со всем её содержимым. Спасибо ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Нихрена не понял.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

Спасибо за хороший вопрос ! :)
Я поясню на примере ...
Есть структура данных, в которой мне не нужны все вложенные GROUP

Код: Выделить всё

  Data
Group1 Group
Field1   Long
Group2   Group
Field2     Bool
Group3     Group
Field3       Real
Field4       Short
           end
         end  
       end
       
Root   &cJson

  Code  
  Root &= json::CreateObject(Group1,,'[{{"Name":"Group2","Ignore":true}]')
  If Not Root &= Null
     Message(Root.ToString(True))
     SetClipBoard(Root.ToString(True))
     Root.Delete()     
  end  
Здесь проблема даже не в том, что выгружены поля, которые не нужны.
А в том, что структура разрушена: field2 и весь group3 "переехали" на уровень вверх.

Код: Выделить всё

{
	"field1":	0,
	"field2":	0,
	"group3":	{
		"field3":	0,
		"field4":	0
	}
}
Я знаю решение и им пользуюсь: перечислять ВСЕ поля во вложенных структурах и
добавлять для них опцию IGNORE ... но это большой и трудно сопровождаемый объём бесполезной работы.

Зачем вообще сделана такая фишка (если это не ошибка) ? Группа должна удаляться со всем её содержимым.
Причём как в выгрузке, так и в загрузке (зачем мусор в содержимом, если я явно указал что мне не нужна ВСЯ группа)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Я знаю ещё парочку решений: дать ненужным полям атрибут NAME('Unused_field') и добавить опцию {"name":"Unused_field","ignore":true}.
Или просто не включать ненужные поля в структуру. Все наверное так и поступают, так как никто до сих пор не жаловался.
Но если так (не проверял ещё), то это ошибка, конечно, игнорирование группы должно распространяться на всю группу.

Если возникнут ещё вопросы, открывайте новую тему, эту считаю закрытой.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

Дед Пахом писал(а): 04 Октябрь 2024, 21:34 Я знаю ещё парочку решений
Нетъ. Структура определяет общий пакет обмена и её состав зависит динамически от запроса.

Даже дело не в этом ... Здесь просто логическое противоречие.
Например есть дорожный знак: АВТОМОБИЛЯМ ВЪЕЗД ЗАПРЕЩЁН.

Никто ведь не пишет под ним:
- Колёсам въезд запрещён;
- Сиденьям въезд запрещён;
- Магнитоле въезд запрещён;
- и т.д.

А мне сейчас приходится для исключение некой составной структуры делать именно так ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Да это понятно. Хорошо хоть, что так быстро ошибка обнаружилась, 6 лет всего (v1.02 (26.09.2018)).
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7636
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 23 раза
Поблагодарили: 65 раз

v1.46

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

Дед Пахом писал(а): 04 Октябрь 2024, 21:46 Хорошо хоть, что так быстро ошибка обнаружилась, 6 лет всего
Я этот вопрос задавал где-то вот здесь ...
viewtopic.php?t=4941&hilit=Ignore&start=165

Но было сказано - для исключения перечислять все поля поля в структуре, что я молча и делал.
Сегодня просто увидел новую фишку с массивом имён в опциях и сразу подумал, что здесь её можно применить. ;)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

v1.46

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

Игорь Столяров писал(а): 04 Октябрь 2024, 21:56 Я этот вопрос задавал где-то вот здесь ...
viewtopic.php?t=4941&hilit=Ignore&start=165
Пару страниц пролистнул, не нашёл, все 18 читать не буду. И здесь завязываем.
С уважением, ДП
Закрыто