Форум » [x]Harbour » CODEPAGE » Ответить

CODEPAGE

spair2k: Хочу переходить с xHarbour на Harbour из последних сборок, но столкнулся с тем, что некоторый код не могу перевести, поскольку не пойму, как подключить кириллическую кодовую страницу. Конструкция: [pre2] REQUEST HB_CODEPAGE_RU866 hb_setCodePage('RU866')[/pre2] не работает... подскажите пожалуйста...

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

Петр: используйте hb_cdpSelect() или Set( _SET_CODEPAGE )

spair2k: Петр пишет: используйте hb_cdpSelect() или Set( _SET_CODEPAGE ) а у меня ругается при вызове этой функции... :( Пишет Unresolved external ...

Dima: spair2k Вероятно нужно прилинковать Hbextern.lib


Andrey: spair2k пишет: Хочу переходить с xHarbour на Harbour из последних сборок Я тоже собрался это делать. У меня программа на xHarbour'e GTWVT-терминал 866-кодировка. Подскажите какие нюансы нужно учитывать при переходе ? Как правильно в начале программы задать 866 кодировку ?

AlexMyr: hb_cdpSelect("RU866") если будет ругаться, то вначале добавить #include "hbextcdp.ch" а правильно так: IF Empty( cTermCP ) cTermCP := "PLISO" ELSE cTermCP := Upper( cTermCP ) ENDIF IF Empty( cHostCP ) cHostCP := "PLMAZ" ELSE cHostCP := Upper( cHostCP ) ENDIF lBoxChar := !Empty( lBoxChar ) hb_cdpSelect( cHostCP ) hb_SetTermCP( cTermCP, cHostCP, lBoxChar ) смотреть \harbour\tests\gtkeys.prg и читать Changelog 2006-02-04 17:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) ... The new three .prg functions: HB_SETKEYCP( <cTermCP> [,<cHostCP>] ) HB_SETDISPCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] ) HB_SETTERMCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] ) ... <cTermCP> is encoding used on external (terminal) side <cHostCP> is encoding used internally, if not given then current code page set HB_SETCODEPAGE() is used. some of GTs which uses unicode output may ignore <cTermCP> <lBoxChar> is optional parameter which interacts with dispbox() output disabling switching to alternate character set in some GTs. It effectively causes that if internal (host) code page contains some letters on the box char positions then they will be shown also by box drawing functions like dispbox() instead of CP437 characters. In some cases it could be useful. By default lBoxChar is not set and GTs which can switch between standard and alternate character set (GTCRS, GTSLN) will try to use alternate character set for box drawing functions.

Andrey: AlexMyr ПАСИБО БОЛЬШОЕ ! А еще вопрос не в тему: как сделать компиляцию одного prg файла с командной строки, чтобы привязать к вызову из FAR ? У меня для хХарбора есть вызов z:\xHarbour\bin\bld_b32.bat ! Как сделать аналогично для Харбора ?

AlexMyr: Для Dos navogator вызов по расширению prg{ c:\dev\harbour\bin\hbmk2.exe -p #.prg >#.log} для Far наверное z:\Harbour\bin\hbmk2.exe !

Andrey: AlexMyr пишет: для Far наверное z:\Harbour\bin\hbmk2.exe ! Нет, вот так работает для Far: z:\hb30\Bin\HBMK2.EXE -gtwin !.! > !.log -run -gtwin : терминал GTWIN -run : запуск сразу программы А вообще классная штука HBMK2.EXE

Vlad04: spair2k и Andrey Хочу переходить с xHarbour на Harbour А какие Вы хотите получить преимущества от такого перехода. Понятно, если бы на GUI.

AlexMyr: Vlad04 пишет: Понятно, если бы на GUI. А тут в чем преимущество, в красивых рюшечках?

Andrey: Vlad04 пишет: А какие Вы хотите получить преимущества от такого перехода. 1) Харбор быстрей хХарбора, здесь на форуме тесты приводились. 2) Возможность использовать MinGW и собирать приложения х64. 3) Терминал GTWVT на Харборе поддерживает создание дочерних окон программы. ?:\hb30\tests\wvtext.prg

serj: Привет всем ! Может мой вопрос и повторяется но все же задам. dbf файл создан в dos, что нужно чтобы при редактировании базы данные сохранялись и отображались (ТSBROWSE) в кодировке 866 использую версию Harbour MiniGUI Extended Edition 2.1.5 - 2012.09.12

PSP: REQUEST HB_CODEPAGE_RU866 HB_CDPSelect( "RU866" )

serj: Все равно не отображается dos база в код.866 в TSBROWSE, если корректируешь то данные сохраняются в RU1251.

Pasha: При старте программы надо задать: REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 HB_CDPSelect( "RU1251" ) при открытии файла надо указывать 866-ю страницу: USE ... CODEPAGE "RU866"

serj: Спасибо ! Все работает.

Andrey: Опять фигня с кодировками... xHarbour 1.2.3 Intl. (SimpLex) (Build 20130903) Терминал GTWVT, в программе стоит: REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") hb_cdpSelect("RU866") Wvt_SetCodePage(255) // #define OEM_CHARSET 255 - from wingdi.h Wvt_SetFont( 'Terminal', 18, 10, 0 ) Считываю файлы с директории на русском языке: Импорт из системы ГОРОД.doc Конфигурация программы.doc В программе считываются как: ╚ьяюёє шч ёшёєхь√ ├╬╨╬─.doc ╩юэїшуєёрўш  яёюуёрьь√.doc Вывожу на экран преобразовав функцией HB_ANSITOOEM(). Получается фигня: Импосу из сисуемы ГОРОД.doc Конхигусачия псогсаммы.doc Что не так делаю ?

Dima: Andrey пишет: Импосу из сисуемы ГОРОД.doc Конхигусачия псогсаммы.doc Это на хорватском ? В какой кодировке содержимое файлов которые считываешь ?

Andrey: Перед тем как считать файлы проверяю ? hb_SetCodepage() , возвращает "RU866" Имена файлов в папке только на русском...

Dima: сделал вот такой простой тест на Harbour 3.2 [pre2] proc main local amas REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") REQUEST HB_CODEPAGE_RU866 hb_cdpSelect( "RU866" ) amas:=directory("*.doc") aeval(amas,{|x| qout(x[1])}) return [/pre2] Имена вывалились нормально на русском .



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