Страница 1 из 4

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

Добавлено: 22 Октябрь 2023, 23:29
Игорь Столяров
ДД ! :)

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

1.jpg

Это только у меня не отображается русский текст в содержании выгруженного словаря ? :(

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

Добавлено: 23 Октябрь 2023, 3:33
Admin
Внутри русский хранится в OEM похоже а записывается в UTF-8 без предварительной перекодировки в Windows-1251

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

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

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

1.jpg

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

Добавлено: 23 Октябрь 2023, 9:47
Admin
Выводы на счет OEM по вот этим данным делаю. Может и не прав
2023-10-23_16-47-12.png

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

Добавлено: 23 Октябрь 2023, 10:07
Игорь Столяров
Может быть и OEM ... На снимке просмотр в FAR, а он всё что не ANSI, то считает OEM ... :)

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

Из плюсов - это рукопопное кодирование в UTF-8, но без потери инфоромации.
Да, при просмотре текста кракозябры, но обратная загрузка восстанавливает русский текст. Хоть так. ;)

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

Добавлено: 23 Октябрь 2023, 10:51
finsoftrz
А зачем потребовался экспорт/импорт в docx, вдруг мне тоже надо? :-)

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

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

Используется для создания резервных копий и быстрого переноса описаний таблиц из одного словаря в другой.
Нужно ли это или нет в свете принятых у Вас обычаев - смотрите пожалуйста сами. :)

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

Добавлено: 23 Октябрь 2023, 11:42
finsoftrz
Обратите внимание, что в среде С11 копировать и изменять можно сразу несколько выделенных объектов. В том числе и таблиц в словаре.
В резервных копиях у меня сохраняются dct, не очень понятно, зачем в docx. Насколько я понимаю, docx можно использовать для каких-то редких случаев массовых изменений (никогда не было таких ситуаций) и для систем контроля версий. Кто-то из англоязычных, если память не изменяет, прикручивал что-то такое.

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

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

Тоже самое как и с БД. Если мы тупо делаем резервную копию целого TPS файла в архив и в нём уже есть какое-то разрушение -
то лучше бы этой резервной копии вообще не было. :)

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

Добавлено: 23 Октябрь 2023, 13:01
finsoftrz
Игорь, если у Вас некорректная выгрузка, то чем это отличается от некорректного бинарного формата. С другой стороны, кто мешает при необходимости выгрузить сохраненный бинарный формат.
В C6 у меня при каждой сборке автоматически сохранялись txd и txa, помимо резервных копий. К сожалению, в С11 txd перестало сохраняться из языка шаблонов (баг, который годами никто не исправляет, хотя многие писали про это), поэтому сейчас только txa.

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

Добавлено: 23 Октябрь 2023, 13:21
Игорь Столяров
finsoftrz писал(а): 23 Октябрь 2023, 13:01 если у Вас некорректная выгрузка, то чем это отличается от некорректного бинарного формата
Тем что в момент выгрузки в текст ошибку в структуре будет сразу видно.
А бинарный файл с ошибкой внутри может копироваться месяцами ... и затереть ранние копии без ошибки.
Условия бывают разные, может быть при каждой сборке выгружать в текст это излишне ... Но раз в месяц делаем.
finsoftrz писал(а): 23 Октябрь 2023, 13:01 К сожалению, в С11 txd перестало сохраняться из языка шаблонов
Я так понимаю, что это не баг, а просто отказ в C11 вообще от формата TXD с переходом на формат выгрузки DCTX.

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

Добавлено: 23 Октябрь 2023, 14:02
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.

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

Добавлено: 23 Октябрь 2023, 14:39
Игорь Столяров
finsoftrz писал(а): 23 Октябрь 2023, 14:02 Если отказались от формата txd, то она должна работать на формат docx.
Логично ... но я так думаю, что не отключили / забыли, а просто вообще не стали тратиться на изготовление.
Потому что выгрузка в "новый" DCTX реализована из среды и командной строки. Посчитали что этого достаточно.

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

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

1. select ALL Files
2. Написать / прописать точно расширение TXD
MicrosoftTeams-image (12).png
и Save

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

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