Форум » Для флейма » Linux (Ubunta 12.xx) + Wine + терминалка GTWVT(866) » Ответить

Linux (Ubunta 12.xx) + Wine + терминалка GTWVT(866)

Andrey: Всем привет ! Столкнулся с большой проблемой, помогите. Под Ubunta 12.хх + Wine запускаю свою прогу (терминалка xHarbour+BCC5.5.1 GTWVT с кодировкой 866 - базы и интерфейс) Так вместо букв - кракозябы.... Что нужно настроить и как, чтобы в Ubunte появилась 866 кодировка ?

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

petr707: Ниже пример конфигурации(возможно, не единственно верный) - некая Linux+Wine + harbour 2.0 GWT терминал ( не Unicode) wine - установки среды по команде set содержит упоминания о языке // set>set.txt .... DICTIONARY=russian DISPLAY=:1038 .. LANG=ru_RU.KOI8-R ... MPAGE=-CKOI8-R .. картинка - вывод параметров терминала из приложения

Andrey: petr707 пишет: Ниже пример конфигурации(возможно, не единственно верный) - некая Linux+Wine + harbour 2.0 GWT терминал ( не Unicode) А можно выложить строки исходника, где проходит инициализация терминала ? Буду очень признателен.

petr707: Пример кода ниже - ENTRY_HARB, что-то пришлось урезать, что-то осталось. В приложении - два терминала (GTWVT и GTWIN), дефолт WVT Параметры окна приложения выбираются из INI-файла. Запуск приложения - наибольший размер(подгонка под размер экрана) либо фиксированный. //============================== Function ENTRY_HARB() ANNOUNCE HB_GTSYS REQUEST HB_GT_WIN REQUEST HB_GT_WVT Public GT_WVT:= .t. Public GT_WIN:= .f. REQUEST HB_CODEPAGE_RUKOI8 REQUEST HB_LANG_RU866 HB_LangSelect( "RU866" ) REQUEST HB_CODEPAGE_RU866 HB_SetCodepage( "RU866" ) HB_GtInfo(HB_GTI_CODEPAGE, 255) // oem_charset HB_SETTERMCP("RU256") GT_WVT := ( hb_gtversion() = "WVT") GT_WIN := ( hb_gtversion() = "WIN") REQUEST HB_GT_WVT_DEFAULT HB_GTInfo( HB_GTI_ICONRES, "Icon_1" ) Set_win_mode() HB_GtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, ...| WN_Notifier( nEvent, ... ) } ) SetFileApis() return .t. Function set_win_mode() Local nW:=select() GT_WVT := ( hb_gtversion() = "WVT") GT_WIN := ( hb_gtversion() = "WIN") HB_GTINFO( HB_GTI_RESIZABLE, .f. ) HB_GTINFO( HB_GTI_CLOSABLE , .t. ) setmode(25,80) Public xFONTNAME := "fixed"//"Courier"//"Lucida Console" Public xFONTWIDTH := 8 //10 Public xFONTSIZE := 16 //20 Public xSCREENWIDTH := 640 //800 Public xSCREENHEIGHT := 400 //500 Public xSETPOS_X := -1 // := 10 Public xSETPOS_Y := -1 // := 10 def_font1 := " " if !empty(def_font1) xFONTNAME := alltrim(def_font1) endif if GT_WIN SetConsoleTitle( "A test [x]" ) hWnd := FindWindow( "A test [x]" ) DeleteCloseButton( hWnd ) SetConsoleTitle( "A" ) do case CASE !lfullscreen xFONTWIDTH := 7 xFONTSIZE := 12 /* Set font size */ hb_gtInfo( HB_GTI_FONTSIZE, xFONTSIZE ) SetMode( MaxRow() + 1, MaxCol() + 1 ) OTHERWISE //! GT_WIN xFONTWIDTH := 7 xFONTSIZE := 12 /* Set font size */ hb_gtInfo( HB_GTI_FONTWIDTH,xFONTWIDTH ) hb_gtInfo( HB_GTI_FONTSIZE, xFONTSIZE ) /* resize console window using new font size */ SetMode( MaxRow() + 1, MaxCol() + 1 ) /* get screen dimensions */ nMaxScrRow := hb_gtInfo( HB_GTI_DESKTOPROWS ) nMaxScrCol := hb_gtInfo( HB_GTI_DESKTOPCOLS ) /* resize console window to the screen size */ SetMode( nMaxScrRow, nMaxScrCol ) ENDCASE xSCREENWIDTH := 80 * xFONTWIDTH //- 50 xSCREENHEIGHT := 25 * xFONTSIZE //- 50 HB_GTINFO( HB_GTI_SCREENWIDTH , xSCREENWIDTH ) HB_GTINFO( HB_GTI_SCREENHEIGHT, xSCREENHEIGHT ) endif// GT_WIN if GT_WVT HB_GtInfo(HB_GTI_FONTNAME , xFONTNAME) ? hb_gtinfo( HB_GTI_FONTWIDTH ) // 10 ? hb_gtinfo( HB_GTI_FONTSIZE ) // 20 ? HB_GTINFO( HB_GTI_SCREENWIDTH ) // 800 ? HB_GTINFO( HB_GTI_SCREENHEIGHT ) // 500 ? " " CLS inkey(0.1) do case CASE !lfullscreen HB_GtInfo( HB_GTI_FONTNAME , xFONTNAME ) HB_GtInfo( HB_GTI_FONTWIDTH , xFONTWIDTH ) HB_GtInfo( HB_GTI_FONTSIZE , xFONTSIZE ) HB_GTINFO( HB_GTI_SCREENWIDTH , xSCREENWIDTH ) HB_GTINFO( HB_GTI_SCREENHEIGHT, xSCREENHEIGHT ) inkey(0.1) OTHERWISE ENDCASE x1GETWIN := HB_GTINFO(HB_GTI_GETWIN) xComp_id := CHARREM(" ", compname() ) xusername := ALLTRIM(username(.t.) ) xcmd_str := "" xGTWVT_INI_file := "GTWVT_"+xComp_id +"_"+xcmd_str+"_"+xusername+".INI" xGTWVT_DEF_file := "GTWVTDEF.INI" lneed_res:=.f. DO CASE CASE file(base_dir_+"\"+xGTWVT_INI_file) get_ini(base_dir_+"\"+xGTWVT_INI_file) HB_GtInfo( HB_GTI_FONTNAME , xFONTNAME ) HB_GtInfo( HB_GTI_FONTWIDTH , xFONTWIDTH ) HB_GtInfo( HB_GTI_FONTSIZE , xFONTSIZE ) HB_GTINFO( HB_GTI_SCREENWIDTH , xSCREENWIDTH ) HB_GTINFO( HB_GTI_SCREENHEIGHT, xSCREENHEIGHT ) if !(xSETPOS_X=NIL .or. xSETPOS_Y=NIL .or. xSETPOS_X<0 .or. xSETPOS_Y<0) HB_GTINFO( HB_GTI_SETPOS_XY , xSETPOS_X , xSETPOS_Y) endif if maxrow(.t.)<24 .or. maxcol()<79 messbeep(""; +"//MAXROW =" +ATN( MAXROW(.t.) )+CRLF; +"//MAXCOL =" +ATN( MAXCOL(.t.) )+CRLF; ) lneed_res:=.t. endif CASE file(base_dir_+"\"+xGTWVT_DEF_file) get_ini(base_dir_+"\"+xGTWVT_DEF_file) HB_GtInfo( HB_GTI_FONTNAME , xFONTNAME ) HB_GtInfo( HB_GTI_FONTWIDTH , xFONTWIDTH ) HB_GtInfo( HB_GTI_FONTSIZE , xFONTSIZE ) HB_GTINFO( HB_GTI_SCREENWIDTH , xSCREENWIDTH ) HB_GTINFO( HB_GTI_SCREENHEIGHT, xSCREENHEIGHT ) if !(xSETPOS_X=NIL .or. xSETPOS_Y=NIL .or. xSETPOS_X<0 .or. xSETPOS_Y<0) HB_GTINFO( HB_GTI_SETPOS_XY , xSETPOS_X , xSETPOS_Y) endif if maxrow(.t.)<24 .or. maxcol()<79 messbeep(""; +"//MAXROW =" +ATN( MAXROW(.t.) )+CRLF; +"//MAXCOL =" +ATN( MAXCOL(.t.) )+CRLF; ) lneed_res:=.t. endif OTHERWISE lneed_res:=.t. ENDCASE if lneed_res Public xFONTWIDTH := 8 //10 Public xFONTSIZE := 16 //20 Public xSCREENWIDTH := 640 //800 Public xSCREENHEIGHT := 400 //500 HB_GtInfo( HB_GTI_FONTNAME , xFONTNAME ) HB_GtInfo( HB_GTI_FONTWIDTH , xFONTWIDTH ) HB_GtInfo( HB_GTI_FONTSIZE , xFONTSIZE ) HB_GTINFO( HB_GTI_SCREENWIDTH , xSCREENWIDTH ) HB_GTINFO( HB_GTI_SCREENHEIGHT, xSCREENHEIGHT ) endif if lneed_res .or. !file( (base_dir_ +"\" + xGTWVT_INI_file) ) strfile(""; +"// MainWindow GTWVT "+CRLF; +"// "+xGTWVT_INI_file+" "+CRLF; +"xFONTNAME="+ xFONTNAME+CRLF; +"xFONTWIDTH=" +ATN(xFONTWIDTH )+CRLF; +"xFONTSIZE=" +ATN(xFONTSIZE )+CRLF; +"xSCREENWIDTH=" +ATN(xSCREENWIDTH )+CRLF; +"xSCREENHEIGHT="+ATN(xSCREENHEIGHT )+CRLF; +"//MAXROW =" +ATN( MAXROW(.t.) )+CRLF; +"//MAXCOL =" +ATN( MAXCOL(.t.) )+CRLF; +"//xSETPOS_X=" +ATN(0)+CRLF; +"//xSETPOS_Y=" +ATN(0)+CRLF; ,(base_dir_ +"\" + xGTWVT_INI_file), .f.) endif endif //GT_WVT RddSetDefault( "DBFNTX" ) SET DBFLOCKSCHEME TO DB_DBFLOCK_CLIP return .t.


Andrey: petr707 пишет: HB_SETTERMCP("RU256") Почему 256 ? Может 255 ? Вообще Pasha пишет: hb_SetCodepage( "RU866" ) hb_SetTermCP( "RU1251" ) // т.е. RUWIN - для хХарбора 1.2

petr707: Это рабочий код, должен работать и в Windows и в Wine, пробуйте. Harbour 2.0

Andrey: petr707 пишет: wine - установки среды по команде set содержит упоминания о языке // set>set.txt .... DICTIONARY=russian DISPLAY=:1038 .. LANG=ru_RU.KOI8-R ... MPAGE=-CKOI8-R .. А как настроить эти параметры для Wine ?

petr707: Вот этого не знаю, к сожалению.

Dima: Andrey пишет: LANG=ru_RU.KOI8-R Погугли например. http://www.linux.org.ru/books/ru-linux-faq/rulinux.faq-3.html

Andrey: Dima пишет: Погугли например. Спасибо БОЛЬШОЕ !

TimTim: http://rus-linux.net/lib.php?name=/MyLDP/BOOKS/WineUG/index.html

Andrey: petr707 пишет: Ниже пример конфигурации(возможно, не единственно верный) - некая Linux+Wine + harbour 2.0 GWT терминал ( не Unicode) А можно Вас попросить дать готовый пример (маленький) с русским текстом (866) на экране программы ? Только который у вас нормально отображается по русски. Буду очень признателен. Чую что дело не в Харборе, а в настройках терминала WINE....

petr707: Попробую, только ответ завтра. Сейчас просто нет доступа к этой консоли.

petr707: Маленький готовый пример - дать не получиться, не могу размещать произвольный ехе в работающую систему. snap_zip По ссылке - zip , где скриншот реальной терминальной задачи WVT из под WINE, и файл newdfull.fon с шрифтом Termimal, который видимо был инсталлирован только для Wine. EXE-файл - один и тот же для работы в Wine и Windows. То есть Wine был настроен под приложение , а не наоборот.

AndreyZh: Так удалось ли подружить терминальное приложение с wine? Решил покрутить на VM - такие же кразабяки в теринальном приложении... обычные совет скачать все шрифты в паку font для wine не помогают.

Andrey: AndreyZh пишет: Так удалось ли подружить терминальное приложение с wine? Нет, не удалось !

AndreyZh: Andrey пишет: Нет, не удалось ! Погуглив нашел только кучу Ваших потугов поспрошать, в том числе на импортных форумах... Видно эта задача, как и использование Linux в бизнесе не слишком актуально... мне проще - просто хотел покрутить wine & linux и посмотреть его пригодность для пользования



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