On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 63
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 15.04.10 17:16. Заголовок: Изображение кодировки ДОС под Windows


Как известно, ДОС и Винда используют разные кодировки. Поэтому при переносе базы данных из ДОС в ВИНДУ возникли косяки с диакритическими знаками. Функция HB_TRANSLATE здесь не подходит, поскольку хотелось бы, чтобы эта база могла бы использоваться и ис-под ДОСа. Как задать правильное отображение кодировки 850 элементами управления Винды (TEXTBOX), чтобы и при вводе эти диакритические знаки, введённые из-под Винды, сохранялись в ДОСе.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


moderator




Пост N: 41
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.04.10 17:53. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Как задать правильное отображение кодировки


Харбор располагает для этого двумя полезными функциями.
Ниже их описание

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 271
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.10 18:03. Заголовок: "Переносить"..


"Переносить", конвертировать базу данных нет нужды. Просто при открытии ее в вашей программе надо указывать кодовую страницу, в которой она сделана. Если кодовая страница приложения ( установленная hb_SetCodepage ) отличается от указанной для базы, то при чтении/записи данных будет происходит автоконвертация.
Так, если мы имеем дело с русскими кодировками и в базах она, как обычно в DOS'е, 866 - то так и открывайте ее: use some_file codepage "RU866". А в начале программы должно стоять, в зависимости от окружения, hb_SetCodepage( "RU866" ) или hb_SetCodepage( "RU1251" ).

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 64
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 15.04.10 19:02. Заголовок: Огромное вам спасибо..


Огромное вам спасибо, Александр Кресин!

Я сделал так: в начале виндовой программы установка
 
HB_SETCODEPAGE("RU1251") // у меня немецкий, потому HB_SETCODEPAGE("DEWIN")

USE DATABASE CODEPAGE "RU866" //DE850



Всё отлично работает!

Ставлю виртуальный ящик баварского пива


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1578
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 19:21. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Ставлю виртуальный ящик баварского пива


На родину поедешь , захвати пару бутылок (не виртуальных)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 872
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.10 19:46. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
HB_SETCODEPAGE("RU1251")


Если вы работаете с Harbour (без x) помните, что в новых версиях hb_SetCodepage переменован в hb_cdpSelect

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1234
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.04.10 21:22. Заголовок: Петр пишет: Если вы..


Петр пишет:

 цитата:
Если вы работаете с Harbour (без x) помните, что в новых версиях hb_SetCodepage переменован в hb_cdpSelect



Ну и нафига нужно было городить такой огород в Харборе ?
А под МиниГуи тоже переделывать придется исходники ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 42
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.04.10 21:45. Заголовок: Andrey пишет: под М..


Andrey пишет:

 цитата:
под МиниГуи тоже переделывать придется исходники ?


Нет, не надо. Это уже учтено для совместимости

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 873
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.10 21:47. Заголовок: Andrey пишет: Ну и ..


Andrey пишет:

 цитата:
Ну и нафига нужно было городить такой огород в Харборе ?


HB_CDPSELECT() which does the same as HB_SETCODEPAGE(), but aligns well with function naming rules and namespace.
Такие у нас правила наименования и пространства имен.


 цитата:
А под МиниГуи тоже переделывать придется исходники ?


В 100 раз - МиниГуи всего лишь GUI библиотека. Все зависит от того, какой вы компилятор будете использовать. Даже если Харбор, то вам достаточно подключить в начале программы xhb.ch. Тогда код придется править меньше или совсем не править.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 242
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет