cJSON: Замена формата дат (и не только)

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

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

cJSON: Замена формата дат (и не только)

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

Добрый день !

Нужно переформатировать даты в структуре - и возникает непреодолимая проблема.
Простой пример:

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

MyTest  Routine
  Data
Root   &cJson
MyDate Group
Task     CString('Задание')
InDate   CString('29.09.2024')  ! Но мне нужна дата в формате "YYYY.MM.DD"
       end
  Code
  Root &= json::CreateObject(MyDate,,'[{{"Name":"InDate","Deformat":"@D06.","Format":"@D010."}]')
  
  If Not Root &= Null then Message(Root.ToString()); Root.Delete().
Результат: {"task":"Задание","indate":"1801.01.26"} :(

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

cJSON: Замена формата дат (и не только)

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

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

cJSON: Замена формата дат (и не только)

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

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

cJSON: Замена формата дат (и не только)

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

Дед Пахом писал(а): 29 Сентябрь 2024, 17:43 Кстати, какой смысл даты хранить в cstring, а не в long
Я вообще человек подневольный ...
Один сервис возвращает дату в @d06, другой желает получать её же в @d010 ...
Начать сейчас заменять форматы хранения дат - это переделывать кучу старых методов.
Конечно сделал уже конвертацию списка через костыль, думал хоть в этом вопросе можно без него. Ан нет ! :(
Дед Пахом писал(а): 29 Сентябрь 2024, 17:13 Format старше.
Назовите пожалуйста хоть одну комбинацию, где нужно значение форматировать, а потом деформатировать ?
Этим даже девушку нельзя удивить. ;)

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

cJSON: Замена формата дат (и не только)

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

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

cJSON: Замена формата дат (и не только)

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

Дед Пахом писал(а): 29 Сентябрь 2024, 18:46 что Deformat игнорируется
И напрасно ! Это ограничивает функционал без какой-либо объективной причины ... :(
При этом, например, опции IsBool / IgnoreFalse работают в комбинации без проблем.
Просто потому, что при их реализации - Вы видели их совместное использование. ;)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3217
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 12 раз
Поблагодарили: 41 раз
Контактная информация:

cJSON: Замена формата дат (и не только)

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

Согласен. Если присутствуют оба правила, то выполнится format(deformat()).
С уважением, ДП
Ответить