Форум » [x]Harbour » Буква "ё" при индексациях ставится не после "е", а после "я" » Ответить

Буква "ё" при индексациях ставится не после "е", а после "я"

Лукашевский: Пара православных организаций на это жалуется, у них "ё" критично... Где можно порыться на эту тему, в каком сишном файле-исходнике? Или мож кто выложит исправленный? Юзаю xHarbour'ный вариант, вроде как всё там было подправлено-сделано до обнаружения этой ошибки, а перелопачивать программу под Harbour - лишний труд, она уже денег не приносит, и влезаю я в неё уже только эпизодически, и не помню уже половину... Может в Harbour это уже решено, тогда тоже соотв. файлик было бы неплохо посмотреть...

Ответов - 47, стр: 1 2 3 All

Dima: mikeas пишет: Сейчас экспериментировал на win xp sp3. mikeas пишет: Собрал harbour на win 10. Похоже получилось. Разве ось влияет на сборку , вроде ж нет ?

mikeas: Разве ось влияет на сборку , вроде ж нет ? Собрал идентичный Harbour и на win xp. Дело было в Avast-е. Отключил его, и все как по маслу собралось.

Dima: mikeas пишет: Дело было в Avast-е Про него тут целая тема есть http://clipper.borda.ru/?1-3-20-00000236-000-0-0-1491487009

mikeas: Да уж, анивирусы досаждают больше и подлее.

PSP: mikeas пишет: Да уж, анивирусы досаждают больше и подлее. Знаете, от платного каспера я лично подляков не получал. А вот эти бесплатные авасты и авг всё время пытаются выслужиться, но часто мимо...)))

Dima: PSP пишет: Знаете, от платного каспера я лично подляков не получал +1 от платного DrWeb тоже такого не видел у себя.

Pasha: Оказывается, за эти годы в харборе в русских кодировках "потерялась" злополучная буква ё. В модуле src\codepage\l_ru.c (смотреть в unicode) ее нет, совсем. Она зачем-то есть в украинском модуле (каюсь, когда-то я туда ее и воткнул). Также нет и белорусской кодировки. Когда в русских кодировках присутствовала буква "ў", это было некритично. А сейчас там ни ё, ни ў нет, так что белорусов совсем обидели.

Dima: Pasha

Pasha: В этом бардаке как-то хочется навести порядок. Как-то совсем печально, что даже upper("ё") не работает.Можно сделать следующее: 1. В русских кодовых страницах добавить букву ё в положенном для нее месте между "е" и "ж". Это приведет к несовместимости индексов, построенных ранее. Их надо будет перестроить. Также не будет совместимости с кодовой страницей клиппера. Но думается, что сейчас это неактуально, клиппер умер (вышел последний релиз) аккурат 20 лет назад. 2. Добавить белорусские кодовые страницы, хотя бы 866 и 1251. 3. Из украинских страниц убрать буквы, отсутствующие в украинском языке, как то ё, ы. Это так же приведет к несовместимости индексов. Какие будут идеи ? Стоит ли это делать ?

Dima: я проживу и без ё :)

Andrey: Pasha пишет: Стоит ли это делать ? Конечно стоит ! Я поддерживаю !

Pasha: Ладно. Мы пойдем другим путем. К тому же, как показали раскопки, в харборе буквы ё так никогда и не было. Она есть в xharbour, но в конце алфавита. Но ничто нам не мешает создать свою кодировку с этой буквой, и использовать, не пересобирая сам харбор. Назвать ее, скажем, RU866M, и.. REQUEST HB_CODEPAGE_RU866M hb_SetCodepage( "RU866M" ) Примеры подготовлю и выложу.

Andrey: Pasha пишет: Но ничто нам не мешает создать свою кодировку с этой буквой, и использовать, не пересобирая сам харбор. Это неправильный путь ! Нужно добавить букву Ё на своё место, и не важно что не будет совместимости с Клипером. Зато в дальнейшем , будут правильные сортировки. Ориентир - на будущее, а не на прошлое !!! [pre2]ФИО - Ёлкина Марина Адрес - д.Ёлкино или улица Ёлкиной[/pre2] Примеров масса. Даже сейчас в задачах, где есть ФИО, улицы - есть проблемы с сортировкой ! Pasha пишет: Назвать ее, скажем, RU866M Создать для совместимости отдельную кодировку - RU866CLIPPER И кому нужно, к себе и линкует. Я думаю, что очень мало кто ещё использует совместно Клипер и Харбор. Поработав на Харборе, не хочется возвращаться на Клипер.

Dima: Andrey Ты ведь примера еще не видел а уже шум поднял

Andrey: Dima пишет: Ты ведь примера еще не видел а уже шум поднял Да так, на всякий случай...

ММК: А винду на украинский перевели?

Pasha: Вот ссылка на 2 модуля с модифицированной кодовой страницей. Достаточно просто добавить их в проект. https://cloud.mail.ru/public/H8ye/LY8AbEcrp Использование: REQUEST HB_CODEPAGE_RU866M hb_SetCodepage( "RU866M" ) или REQUEST HB_CODEPAGE_RU1251M hb_SetCodepage( "RU1251M" )

Dima: Pasha Я думал там кода будет на пару страниц... Просто и гениально

Andrey: А где для UTF8 ? Я базу отправляю в PostgreSql и LetoDb на сайт.... Пока оттуда выборки не делал, но буду потом. Я в МиниГуи просто пишу так: REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_CODEPAGE_UTF8 SET LANGUAGE TO RUSSIAN SET CODEPAGE TO RUSSIAN База в RU866, а GUI в RU1251. Берётся автоматом. А как тогда для НОВЫХ кодировок делать для МиниГуи ?

Pasha: Andrey пишет: А как тогда для НОВЫХ кодировок делать для МиниГуи ? Не использовать команды препроцессора hmg, а вызывать стандартные средства харбора для кодировки RU1251M Что касается uft8, то не существует отдельной русской uft8. Она и для России, и для Африки одинаковая.



полная версия страницы