Формат выгрузки словаря в *.DCTX

Clarion, Clarion 7

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

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

Формат выгрузки словаря в *.DCTX

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

ДД ! :)

Если выгрузить словарь из С11 в формат DCTX - то вроде бы это XML в формате UTF-8.
Но русский текст упорно кракозябит. Если загрузить такой файл в словарь - то русский нормально показан.

1.jpg

Это только у меня не отображается русский текст в содержании выгруженного словаря ? :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Формат выгрузки словаря в *.DCTX

Сообщение Admin »

Внутри русский хранится в OEM похоже а записывается в UTF-8 без предварительной перекодировки в Windows-1251
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Формат выгрузки словаря в *.DCTX

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

Всё это очень странно - учитывая какие-то там постоянные дебаты рускоговорящих программеров на стороне SV ...
Есть сервис для декодирования кириллицы - он показывает, что это не OEM, а Windows - 1252.

Т.е. зачем-то вместо текущей кодовой страницы (Windows-1251) берётся европейская Windows-1252, и кодируется в UTF-8.
И результат (кракозябры) - это кириллица в Windows-1252. При загрузке DCTX в словарь идёт обратное преобразование
(UTF-8 -> Windows-1252) и мы снова видим русский текст. Чудны дела рук детей твоих Господи ... :(

1.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Формат выгрузки словаря в *.DCTX

Сообщение Admin »

Выводы на счет OEM по вот этим данным делаю. Может и не прав
2023-10-23_16-47-12.png
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Формат выгрузки словаря в *.DCTX

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

Может быть и OEM ... На снимке просмотр в FAR, а он всё что не ANSI, то считает OEM ... :)

Так или иначе проблема в том, что при выгрузке словаря берётся не текущая кодовая страница Windows (Win1251),
а некая фиксированная кодовая страница (OEM / Win1252) и с неё выполняется кодировка в UTF-8.
Поэтому вместо русского текста видим кракозябры в этом самом OEM / Win1252. :(

Из плюсов - это рукопопное кодирование в UTF-8, но без потери инфоромации.
Да, при просмотре текста кракозябры, но обратная загрузка восстанавливает русский текст. Хоть так. ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Формат выгрузки словаря в *.DCTX

Сообщение finsoftrz »

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

Формат выгрузки словаря в *.DCTX

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

finsoftrz писал(а): 23 Октябрь 2023, 10:51 экспорт/импорт в docx
Словарь в С11 выгружается / загружается в текстовом формате DCTX (наверно от DiCTionary External).
Вместо TXD в C63. Вроде бы DCTX - это обычный XML в кодировке UTF-8 ... но не совсем (см. ниже)

Используется для создания резервных копий и быстрого переноса описаний таблиц из одного словаря в другой.
Нужно ли это или нет в свете принятых у Вас обычаев - смотрите пожалуйста сами. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Формат выгрузки словаря в *.DCTX

Сообщение finsoftrz »

Обратите внимание, что в среде С11 копировать и изменять можно сразу несколько выделенных объектов. В том числе и таблиц в словаре.
В резервных копиях у меня сохраняются dct, не очень понятно, зачем в docx. Насколько я понимаю, docx можно использовать для каких-то редких случаев массовых изменений (никогда не было таких ситуаций) и для систем контроля версий. Кто-то из англоязычных, если память не изменяет, прикручивал что-то такое.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Формат выгрузки словаря в *.DCTX

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

finsoftrz писал(а): 23 Октябрь 2023, 11:42 не очень понятно, зачем в docx.
Любая бинарная структура может быть разрушена ... и мы не можем манипулировать фрагментами данных при восстановлении.
Поэтому резервные копии APP / DCT всегда делались через выгрузку в какой-либо вариант текста (для C63 в форматы TXA / ТХD).

Тоже самое как и с БД. Если мы тупо делаем резервную копию целого TPS файла в архив и в нём уже есть какое-то разрушение -
то лучше бы этой резервной копии вообще не было. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Формат выгрузки словаря в *.DCTX

Сообщение finsoftrz »

Игорь, если у Вас некорректная выгрузка, то чем это отличается от некорректного бинарного формата. С другой стороны, кто мешает при необходимости выгрузить сохраненный бинарный формат.
В C6 у меня при каждой сборке автоматически сохранялись txd и txa, помимо резервных копий. К сожалению, в С11 txd перестало сохраняться из языка шаблонов (баг, который годами никто не исправляет, хотя многие писали про это), поэтому сейчас только txa.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Формат выгрузки словаря в *.DCTX

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

finsoftrz писал(а): 23 Октябрь 2023, 13:01 если у Вас некорректная выгрузка, то чем это отличается от некорректного бинарного формата
Тем что в момент выгрузки в текст ошибку в структуре будет сразу видно.
А бинарный файл с ошибкой внутри может копироваться месяцами ... и затереть ранние копии без ошибки.
Условия бывают разные, может быть при каждой сборке выгружать в текст это излишне ... Но раз в месяц делаем.
finsoftrz писал(а): 23 Октябрь 2023, 13:01 К сожалению, в С11 txd перестало сохраняться из языка шаблонов
Я так понимаю, что это не баг, а просто отказ в C11 вообще от формата TXD с переходом на формат выгрузки DCTX.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Формат выгрузки словаря в *.DCTX

Сообщение finsoftrz »

Игорь Столяров писал(а): 23 Октябрь 2023, 13:21
finsoftrz писал(а): 23 Октябрь 2023, 13:01 если у Вас некорректная выгрузка, то чем это отличается от некорректного бинарного формата
Тем что в момент выгрузки в текст ошибку в структуре будет сразу видно.
А бинарный файл с ошибкой внутри может копироваться месяцами ... и затереть ранние копии без ошибки.
Условия бывают разные, может быть при каждой сборке выгружать в текст это излишне ... Но раз в месяц делаем.
Не факт, что увидите ошибку при выгрузке. Более вероятно, будет просто некорректная выгрузка. Плюсом надо добавить, что сам по себе экспорт и импорт может иметь проблемы, учитывая уровень тестирования кода в SV.
Игорь Столяров писал(а): 23 Октябрь 2023, 13:21
finsoftrz писал(а): 23 Октябрь 2023, 13:01 К сожалению, в С11 txd перестало сохраняться из языка шаблонов
Я так понимаю, что это не баг, а просто отказ в C11 вообще от формата TXD с переходом на формат выгрузки DCTX.
Именно баг, причем давно известный. В языке шаблонов есть инструкция, которая перестала работать. Если отказались от формата txd, то она должна работать на формат docx. Скорее всего, когда решили перейти на docx, там ее на время тестирования временно отключили, а потом забыли включить. Когда всплыло, акты приема передачи были подписаны, тратить деньги на наем новых оффшорщиков посчитали излишним. Это относится и ко всей среде С11.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Формат выгрузки словаря в *.DCTX

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

finsoftrz писал(а): 23 Октябрь 2023, 14:02 Если отказались от формата txd, то она должна работать на формат docx.
Логично ... но я так думаю, что не отключили / забыли, а просто вообще не стали тратиться на изготовление.
Потому что выгрузка в "новый" DCTX реализована из среды и командной строки. Посчитали что этого достаточно.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 426
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 90 раз
Поблагодарили: 5 раз

Формат выгрузки словаря в *.DCTX

Сообщение ingasoftplus »

Игорь Столяров писал(а): 23 Октябрь 2023, 13:21 отказ в C11 вообще от формата TXD
все вообще-то работает. Для выгрузки в TXD формат нужно в окне запроса на сохранение выбрать

1. select ALL Files
2. Написать / прописать точно расширение TXD
MicrosoftTeams-image (12).png
и Save
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Формат выгрузки словаря в *.DCTX

Сообщение finsoftrz »

Игорь Столяров писал(а): 23 Октябрь 2023, 14:39
finsoftrz писал(а): 23 Октябрь 2023, 14:02 Если отказались от формата txd, то она должна работать на формат docx.
Логично ... но я так думаю, что не отключили / забыли, а просто вообще не стали тратиться на изготовление.
Потому что выгрузка в "новый" DCTX реализована из среды и командной строки. Посчитали что этого достаточно.
Ну, мы можем только гадать о причинах. Факт остается фактом. Выгрузка app в txa в языке шаблонов работает.
C6/C11, ШВС, tps/btrieve.
Ответить