http://lenta.ru/news/2010/11/26/unstalin/ - чем Сталин был хуже остальных? Не умел так маскировать акции как остальные! Чем он Хуже Николашки-блаженного, нюни развалившего профукавшего державу? Чем он хуже Петра Первого с его реформами? да и на остальных посмотрите.
Нельзя идти на поводу у тех, кто задался целью лишить страну истории и опустить ее в этом до какой-то америки? А посмотрите на ту же америку! тут писать ничего не надо, достаточно почитать учебник истории (любой, какой хотите) о , например, расовой сегрегации, охоте на ведьм.
ХВАТИТ БРЕДА об уникальной кровожадности коммуняк и гэбни, об отсталости России! Они ни чем не выделяются на фоне остальных в истории России , да и всего мира. Проверьте и опровергните, только, чур, без подтасовок!
пятница, 26 ноября 2010 г.
воскресенье, 14 ноября 2010 г.
для сборки hwgui примеров можно сделать hbmk.hbp файл:
======================
-lart_lgpl_2
-latk-1.0
-lcairo
-lfontconfig
-lfreetype
-lgdk_pixbuf-2.0
-lgdk-x11-2.0
-lgio-2.0
-lglib-2.0
-lgmodule-2.0
-lgnomeprint-2-2
-lgobject-2.0
-lgtcgi
-lgtcrs
-lgthread-2.0
-lgtk-x11-2.0
-lhbcommon
-lhbcpage
-lhbdebug
-lhblang
-lhbmacro
-lhbpp
-lhbrdd
-lhbrtl
-lhbsix
-lhbvm
-lhbxml
-lhwgui
-lm
-lncurses
-lpango-1.0
-lpangocairo-1.0
-lpangoft2-1.0
-lpng12
-lprocmisc
-lrddcdx
-lrddfpt
-lrddntx
-lrt
-lxml2
-lz
-pthread
======================
Я скопировал библиотеки и инклюды hwgui в соответствуюшие директории Харбора. (/usr/local/lib/harbour и /usr/local/include/harbour)
В примере dbview.prg нужно поменять функцию hb_codepage на hb_cdpselect.
======================
-lart_lgpl_2
-latk-1.0
-lcairo
-lfontconfig
-lfreetype
-lgdk_pixbuf-2.0
-lgdk-x11-2.0
-lgio-2.0
-lglib-2.0
-lgmodule-2.0
-lgnomeprint-2-2
-lgobject-2.0
-lgtcgi
-lgtcrs
-lgthread-2.0
-lgtk-x11-2.0
-lhbcommon
-lhbcpage
-lhbdebug
-lhblang
-lhbmacro
-lhbpp
-lhbrdd
-lhbrtl
-lhbsix
-lhbvm
-lhbxml
-lhwgui
-lm
-lncurses
-lpango-1.0
-lpangocairo-1.0
-lpangoft2-1.0
-lpng12
-lprocmisc
-lrddcdx
-lrddfpt
-lrddntx
-lrt
-lxml2
-lz
-pthread
======================
Я скопировал библиотеки и инклюды hwgui в соответствуюшие директории Харбора. (/usr/local/lib/harbour и /usr/local/include/harbour)
В примере dbview.prg нужно поменять функцию hb_codepage на hb_cdpselect.
среда, 10 ноября 2010 г.
пример HWGUI
Чтобы не потерять: пример кода с использованием HWGUI. Найден где-то на форуме. (пример работает, но создается очень маленькле окошко - нужно его раздвинуть)
#include "hwgui.ch"
Function Main
Local oMainWnd, oFont
Local aCombo := {"First","Second" }
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
INIT WINDOW oMainWnd TITLE "Example" ;
FONT oFont ;
ON EXIT {||MsgYesNo("Really want to quit ?")}
@ 20,10 EDITBOX "Hello, World!" SIZE 200,30
@ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox"
@ 120,60 BUTTON "Close" SIZE 150,30 ;
ON CLICK {||oMainWnd:Close()}
MENU OF oMainWnd
MENUITEM "About" ACTION MsgInfo("First HwGUI Application")
ENDMENU
ACTIVATE WINDOW oMainWnd
Return
#include "hwgui.ch"
Function Main
Local oMainWnd, oFont
Local aCombo := {"First","Second" }
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
INIT WINDOW oMainWnd TITLE "Example" ;
FONT oFont ;
ON EXIT {||MsgYesNo("Really want to quit ?")}
@ 20,10 EDITBOX "Hello, World!" SIZE 200,30
@ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox"
@ 120,60 BUTTON "Close" SIZE 150,30 ;
ON CLICK {||oMainWnd:Close()}
MENU OF oMainWnd
MENUITEM "About" ACTION MsgInfo("First HwGUI Application")
ENDMENU
ACTIVATE WINDOW oMainWnd
Return
вторник, 9 ноября 2010 г.
кодировки в консоли Linux
Вот попробовал последавать наставлениям Петра и попробовать использовать другие функции работы с кодировками. Итак:
-----------------------------------------------------------
-----------------------------------------------
Ну с кодом , наверное, все понятно. сначала демонстрация hb_setTermCP("ККК","ККК"), потом HB_CDPSELECT( "RU1251" ), потом ввод с клавиатуры, запись в БД в разных кодировках. Результат обнадеживает! данные записались в нужных кодировках. Теперь нужно бы проверить как поведет себя база с индексами, но это как нибудь потом. После проверки этого кода на винде.
-----------------------------------------------
проверил на wine - нормально видно только кодировку 1251, в которой , собственно он, wine, и работает.
-----------------------------------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main ()
local cMsg866, cMsg1251,mtest1251:="1234567890",mtest866:="1234567890",i
clear
cMsg866 := '�ਢ�� 866...' //привет 866
cMsg1251 := '������ 1251' //привет 1251
REQUEST HB_CODEPAGE_RU866
Function Main ()
local cMsg866, cMsg1251,mtest1251:="1234567890",mtest866:="1234567890",i
clear
cMsg866 := '�ਢ�� 866...' //привет 866
cMsg1251 := '������ 1251' //привет 1251
// тут про яркий синий воздушный шарик
arr866:={"�ન�", "�����", "���������", "��ਪ", "�ન�", "ᨭ��", "���������", "��ਪ"}
arr1251:={"�����", "�����", "���������", "�����", "�����", "�����", "���������", "�����"}
? '=====111================'
hb_setTermCP("RU866","RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
hb_setTermCP("RU1251","RU1251")
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
hb_setTermCP("","") // reset codepage to default value
? "=====222====================="
HB_CDPSELECT( "RU1251" )
?
?"CDPSELECT initial 1251:"
for each i in arr1251
? " ", i
end
?"CDPSELECT sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
HB_CDPSELECT( "RU866" )
?
?"CDPSELECT initial 866:"
for each i in arr866
? " ",i
end
?"CDPSELECT sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
? "=====333====================="
hb_setTermCP("RU1251","RU1251")
?
?"termcp initial 1251:"
for each i in arr1251
? " ", i
end
?"termcp sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
hb_setTermCP("RU866","RU866")
?
?"termcp initial 866:"
for each i in arr866
? " ",i
end
?"termcp sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
? "=====444====================="
dbCreate( "Nakl1.dbf", { {"f1251","C",10,0},{"f866","C",10,0} } )
hb_setTermCP("RU1251","RU1251")
@ 10,10 say "enter test" get mtest1251
read
? mtest1251
hb_setTermCP("RU866","RU866")
@ 10,10 say "enter test" get mtest866
read
? mtest866
use "Nakl1.dbf" new
Append blank
1->f1251:= mtest1251
1->f866:=mtest866
close all
Return Nil
? '=====111================'
hb_setTermCP("RU866","RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
hb_setTermCP("RU1251","RU1251")
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
hb_setTermCP("","") // reset codepage to default value
? "=====222====================="
HB_CDPSELECT( "RU1251" )
?
?"CDPSELECT initial 1251:"
for each i in arr1251
? " ", i
end
?"CDPSELECT sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
HB_CDPSELECT( "RU866" )
?
?"CDPSELECT initial 866:"
for each i in arr866
? " ",i
end
?"CDPSELECT sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
? "=====333====================="
hb_setTermCP("RU1251","RU1251")
?
?"termcp initial 1251:"
for each i in arr1251
? " ", i
end
?"termcp sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
hb_setTermCP("RU866","RU866")
?
?"termcp initial 866:"
for each i in arr866
? " ",i
end
?"termcp sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
? "=====444====================="
dbCreate( "Nakl1.dbf", { {"f1251","C",10,0},{"f866","C",10,0} } )
hb_setTermCP("RU1251","RU1251")
@ 10,10 say "enter test" get mtest1251
read
? mtest1251
hb_setTermCP("RU866","RU866")
@ 10,10 say "enter test" get mtest866
read
? mtest866
use "Nakl1.dbf" new
Append blank
1->f1251:= mtest1251
1->f866:=mtest866
close all
Return Nil
-----------------------------------------------
Ну с кодом , наверное, все понятно. сначала демонстрация hb_setTermCP("ККК","ККК"), потом HB_CDPSELECT( "RU1251" ), потом ввод с клавиатуры, запись в БД в разных кодировках. Результат обнадеживает! данные записались в нужных кодировках. Теперь нужно бы проверить как поведет себя база с индексами, но это как нибудь потом. После проверки этого кода на винде.
-----------------------------------------------
проверил на wine - нормально видно только кодировку 1251, в которой , собственно он, wine, и работает.
понедельник, 8 ноября 2010 г.
кодировка при вводе
Вот какой ответ получен на форуме http://clipper.borda.ru :
------------------------
Спасибо, уважаемый Петр! Все коротко, ясно и по теме. При первой возможности попробую. К сожалению возможности не всегда соответствуют желанию ;-)
Кроме уже освоенной вами hb_cdpSelect,
Harbour предлагает такие функции hb_setDispCP(), hb_setKeyCP(), hb_setTermCP().
Так, что есть выбор - перевести локаль в KOIR-8r и при помощи указанных функций добиться желаемого результата
или разблокировать экспериментальную поддержку UTF8 в исходниках, перекомпилировать Harbour и дальше опять с помощью setDispCP(), hb_setKeyCP() получить желаемое.
Все подробности ищите в ChangeLog
P.S. Я не линуксоид, больше чем советом, не совсем иногда уместным , помочь не смогу.
Harbour предлагает такие функции hb_setDispCP(), hb_setKeyCP(), hb_setTermCP().
Так, что есть выбор - перевести локаль в KOIR-8r и при помощи указанных функций добиться желаемого результата
или разблокировать экспериментальную поддержку UTF8 в исходниках, перекомпилировать Harbour и дальше опять с помощью setDispCP(), hb_setKeyCP() получить желаемое.
Все подробности ищите в ChangeLog
P.S. Я не линуксоид, больше чем советом, не совсем иногда уместным , помочь не смогу.
------------------------
Спасибо, уважаемый Петр! Все коротко, ясно и по теме. При первой возможности попробую. К сожалению возможности не всегда соответствуют желанию ;-)
суббота, 6 ноября 2010 г.
попытка собрать hwgui на ubuntu
запускаем
hbmk2 hwgui.hbm
в результате куча ругани, что не найдены файлы windows.h и shlobj.h
hbmk2 hwgui.hbm
в результате куча ругани, что не найдены файлы windows.h и shlobj.h
как компилировать под UBUNTU
Не забывайте, что Harbour устанавливается в /usr/local/bin , его инклюды /usr/local/include/harbour , либы в /usr/local/lib/harbour .
Эти папки надо обычно указать в Makefile.linux .
Это ,например, нужно сделать для letodb server и hwgui.
Эти папки надо обычно указать в Makefile.linux .
Это ,например, нужно сделать для letodb server и hwgui.
пятница, 5 ноября 2010 г.
GET на UTF-8
если с выводом строк все достаточно прозрачно, то с вводом полное фиаско. попытка ввести строку привела к неудобоваримому представлению двубайтной кодировки. что делать - пока не знаю.
кодировки в программах на Harbour
Вот пример, который выдран с clipper.borda.ru. только там он для xHarbour, наверное, так как у меня не заработал в оригинале.
Итак: локаль UTF-8. Ubuntu. Консоль.
-------------------------------------------------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main ()
local cMsg866, cMsg1251
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
Return Nil
-------------------------------------------------------------------------
Получаем:
тоесть все строки можно хранить в старой доброй досовской кодировке, а на выводе система сделает преобразование в читабельную информацию.
вопрос с сортировкой проверяем. зададим массивы строк в 866 и 1251 кодировках. текст:
arr1251:={"Яркий", "синий", "Воздушный", "шарик", "яркий", "Синий", "воздушный", "Шарик"}
arr866:={"яркий", "Синий", "воздушный", "Шарик", "Яркий", "синий", "Воздушный", "шарик"}
естественно строки в НУЖНОЙ кодировке, а тут все видно для наглядности ;-)
--------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main()
local cMsg866, cMsg1251,arr866,arr1251,i
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
arr1251:={"�����", "�����", "���������", "�����", "�����", "�����", "���������", "�����"}
arr866:={"�ન�", "�����", "���������", "��ਪ", "�ન�", "ᨭ��", "���������", "��ਪ"}
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
HB_CDPSELECT( "RU1251" )
?
?"initial 1251:"
for each i in arr1251
? " ", i
end
?"sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
HB_CDPSELECT( "RU866" )
?
?"initial 866:"
for each i in arr866
? " ",i
end
?"sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
Return Nil
-----------------------------------------------------
в результате получаем:
HB_CDPSELECT( "RU866")
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
initial 1251:
Яркий
синий
Воздушный
шарик
яркий
Синий
воздушный
Шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
initial 866:
яркий
Синий
воздушный
Шарик
Яркий
синий
Воздушный
шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
значит сортировка работает корректно!
Итак: локаль UTF-8. Ubuntu. Консоль.
-------------------------------------------------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main ()
local cMsg866, cMsg1251
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
Return Nil
-------------------------------------------------------------------------
Получаем:
HB_CDPSELECT( "RU866" )
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
тоесть все строки можно хранить в старой доброй досовской кодировке, а на выводе система сделает преобразование в читабельную информацию.
вопрос с сортировкой проверяем. зададим массивы строк в 866 и 1251 кодировках. текст:
arr1251:={"Яркий", "синий", "Воздушный", "шарик", "яркий", "Синий", "воздушный", "Шарик"}
arr866:={"яркий", "Синий", "воздушный", "Шарик", "Яркий", "синий", "Воздушный", "шарик"}
естественно строки в НУЖНОЙ кодировке, а тут все видно для наглядности ;-)
--------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main()
local cMsg866, cMsg1251,arr866,arr1251,i
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
arr1251:={"�����", "�����", "���������", "�����", "�����", "�����", "���������", "�����"}
arr866:={"�ન�", "�����", "���������", "��ਪ", "�ન�", "ᨭ��", "���������", "��ਪ"}
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
HB_CDPSELECT( "RU1251" )
?
?"initial 1251:"
for each i in arr1251
? " ", i
end
?"sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
HB_CDPSELECT( "RU866" )
?
?"initial 866:"
for each i in arr866
? " ",i
end
?"sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
Return Nil
-----------------------------------------------------
в результате получаем:
HB_CDPSELECT( "RU866")
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
initial 1251:
Яркий
синий
Воздушный
шарик
яркий
Синий
воздушный
Шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
initial 866:
яркий
Синий
воздушный
Шарик
Яркий
синий
Воздушный
шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
значит сортировка работает корректно!
Подписаться на:
Сообщения (Atom)