powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
19 сообщений из 19, страница 1 из 1
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38501629
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, кто как обеспечивает правильную сортировку узловых значений штатными средствами M?
Учитывая, что на кирилице аски коды идут не совсем последовательно:
GTM>f i=65:1:122 d w $c(i)
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
GTM>f i=1025:1:1111 d w $c(i)
ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕії

Может, как вариант - это модифицированный транслит(мапинг кирилических символов, размещенных в алфавитном порядке в asci коды латиницы по возрастанию кода) значений на кирилице в латинку перед записью в узел, а при чтении значений узлов, перед их выводом - обратный транслит?Этот вариант влечёт за собой накладные расходы, ничего другого пока придумать не удалось.
Например:
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
АБВГДЕЄЭЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮЯ
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38501639
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чуть иначе-транслит кирилических символов размещённых по алфавиту

в кирилические, размещённые по возрастанию аски кодов в системе:
АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгґдеєжзиіїйклмнопрстуфхцчшщьюя
в
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэю
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38501837
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это если не установлен unicod:
Код: sql
1.
2.
3.
4.
5.
6.
[root@GTM ~]# source /usr/gtm603/sysprofile
[root@GTM gtm603]# gtm

GTM>write $zchset
M
GTM>



Если установлен:
Код: sql
1.
2.
3.
4.
5.
6.
[root@GTM ~]# source /usr/gtm603/sysprofile
[root@GTM gtm603]# gtm

GTM>write $zchset
UTF-8
GTM>


GT.M supports international character sets using Unicode. A mumps process can operate in one of two modes: M mode and UTF-8 mode, which is specified by the environment variable gtm_chset at process startup and which is immutable for the life of the process.

In M mode, the process interprets strings as single byte characters with characters from $Char(0) through $Char(127) encoded as ASCII (M mode). A GT.M process in M mode places no interpretation on characters $Char(128) through $Char (255) – the application is free to use any interpretation it chooses, and ISO-8859 variants are commonly used. There is no distinction between a string of bytes and a string of characters and all bytes are valid characters – the concept of an illegal or a non-canonical character is a non-sequitur in M mode.

In UTF-8 mode, the process by default interprets strings as multi-byte characters encoded using UTF-8 (UTF-8 mode). Some sequences of bytes are not defined by the standard, and are considered illegal characters. The process can also interpret a string as a sequence of bytes, and the same string can have different properties (such as its length) when it is considered a sequence of bytes than as a sequence of characters.

Except when triggers are used, this interpretation is at the level of the process: the database treats strings as binary data and does not care how they are encoded. So, it is possible for the same database to be concurrently accessed by mumps processes operating in both M mode and UTF-8 mode. Mupip and other processes are not concerned with this distinction. If the database has triggers, since triggers are compiled code, all proceses that use a database must have the same mode.

Скачайте с сайда GT.M Acculturation Workshop.
http://sourceforge.net/projects/fis-gtm/files/
там про это сказано
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502367
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую,
перед запуском gtm делаю export gtm_chset="UTF-8"
поэтому:
GTM>write $zchset
UTF-8
иначе в консоли GTM
GTM>write $zchset
M
кирилица отображается как-то так '@?'

ISO 8859-5 (Latin/Cyrillic) кириллица, включающая символы славянских языков (белорусский, болгарский, македонский, русский, сербский и частично украинский ).
В данной раскладке укр. большие буквы ЄІЇ по аски кодам размещены перед началом алфавита (а маленькие - в конце всего алфавита) - что в свою очередь влияет на правильность сортировки укр. слов (ФИО, номенклатуры и т.д. имеющие в своём составе эти символы):
404 Є
A0 Ё
403 Є
405 І
406 Ї
40F А
410 Б
411 В
412 Г
413 Д

Acculturation Workshop наск. я понял это виртуалка с установленным GT.M, я изначально экспериментировал на ней, после чего установил GT.M на обычном ПК с Debian.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502392
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user_tiv,
Если честно, я не занимался глубоко этими вопросами-у нас латиница.
Но я думаю, что какую то альтернативу можно найти.
Почему кашевары не отвечают ? Думаю здесь подход одинаковый,
что в GT.M что Cache.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502397
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502408
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, user_tiv
Может зависит от ICU Version ?
Они говорят что "GT.M requires at least ICU Version 3.6 to install the functionality related to Unicode."

http://download.icu-project.org/files/icu4c/51.1/
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502412
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valeriu,

icu у меня 4 ver
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502419
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user_tiv,
Когда просмотр командой
[root@GTM gtm603]# locale -a
Ваша кодировка присутствует в списке ?
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502426
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The mode of a process is controlled by the environment variable gtm_chset. If it is not set, or has a value other than "UTF-8", the process operates in M mode. Within a process the ISV $ZCHset can be used to test the mode.

For a process to operate in UTF-8 mode requires:

ICU with a level of 3.6 or higher packaged as libicu. GT.M may also require the environment variable gtm_icu_version to be defined (the gtmprofile script attempts to detect and set it, if it is not set, but is not guaranteed to succeed).

The environment variable LC_CTYPE (or the environment variable LC_ALL) to specify a UTF-8 locale available on the system.

The locale command provides a list of available locales:

gtmuser@gtmworkshop7:~$ locale -a
C
POSIX
en_US.utf8
gtmuser@gtmworkshop7:~$
You can use the localedef command to generate additional UTF-8 locales – in this example, a UTF-8 locale for Arabic as used in Jordan is generated.

gtmuser@gtmworkshop7:~$ sudo localedef -f UTF-8 -i ar_JO ar_JO.utf8
gtmuser@gtmworkshop7:~$ locale -a
C
POSIX
ar_JO.utf8
en_US.utf8
gtmuser@gtmworkshop7:~$
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502453
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuПочему кашевары не отвечают ? Думаю здесь подход одинаковый,
что в GT.M что Cache.Раз Вы настаиваете:
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502985
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorа в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово.

для рос. локали - проблем нет и для gt.m - исключение разве что c Ё.
Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды).

Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502987
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valeriuuser_tiv,
Когда просмотр командой
[root@GTM gtm603]# locale -a
Ваша кодировка присутствует в списке ?

таки да:
root@debian:/home/tiv# locale -a
C
C.UTF-8
en_US.utf8
POSIX
uk_UA.utf8
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38502988
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValeriuDAiMor, user_tiv
Может зависит от ICU Version ?
Они говорят что "GT.M requires at least ICU Version 3.6 to install the functionality related to Unicode."

http://download.icu-project.org/files/icu4c/51.1/

root@debian:/home/tiv# icu-config --version
4.8.1.1
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38503104
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user_tivDAiMorа в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово.

для рос. локали - проблем нет и для gt.m - исключение разве что c Ё.
Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды).

Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов.У нас проекты в том числе в Украине и в Казахстане. Для Украины используем сортирвку Cyrillic3, а в Казахстане и России хватает CacheStandard.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38503258
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMoruser_tivпропущено...


для рос. локали - проблем нет и для gt.m - исключение разве что c Ё.
Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды).

Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов.У нас проекты в том числе в Украине и в Казахстане. Для Украины используем сортирвку Cyrillic3, а в Казахстане и России хватает CacheStandard.

Вероятно в Каше есть то, чего нет в gtm и на уровне gtm нужно будет либо заниматься
"транслитом" либо модифицировать розкладку на уровне ОС.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38503344
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user_tiv,
Я думаю есть смысл задавать вопрос разработчикам GT.M (K.S. Bhaskar)
на форуме https://groups.google.com/forum/#!forum/comp.lang.mumps
Им даже будет интересно. Пробуйте.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38503405
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user_tiv,

вы правы, в Cache' есть понятие Collation (сортировка), которое позволяет определить порядок сортировки символов, отличный от порядка следования их кодов. Порядок сортировки, совпадающий с порядком следования кодов, называется стандартным (Cache Standard). В GT.M, по-видимому, такой порядок действует всегда.

При этом надо учитывать, что скорость глобального доступа к БД, использующей сортировку, отличную от Cache Standard, может быть на 20-25% ниже по сравнению с Cache Standard.
...
Рейтинг: 0 / 0
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
    #38504722
user_tiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок.Всем спасибо за ответы.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]