On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение





Пост N: 9
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 11:28. Заголовок: Предложение... и ламерские вопросы


Добрый день уважаемые специалисты!

Попробовал перевести часть большого проекта на Clipper 5.01R+CTII под xHarbour в плане проверки "быстродействия" и поверхностного анализа проблем совместимости. СПАСИБО Верченко Андрею за его инструкцию!!! Некоторый предварительные (для меня) результаты:

1. Оконная система CT поддерживается в xHarbour;
2. Быстродействие xHarbour в математике в 8 раз быстрее (наверное использование RAM), а на базах примерно на 30% быстрее, что очень заманчиво.

Т.е. есть резон пытаться перевести часть "некритичных" приложений на [x]Harbour. НО!!! Натолкнулся на ряд технических и организационных проблем... Главная из которых отсутствие в "удобном" доступе документации и весьма полезных инструкций/программ (на русском языке), хотя они имеются в наличии, как правило авторы размещают их в хранилищах с ограниченным сроком хранения и мои попытки скачать их натыкаются на сообщение "файл удалён из хранилища".

ПРЕДЛОЖЕНИЕ:

На своём сайте могу сделать страницу со ссылками на полезные программы и документацию, а так же разместить на сайте архивы данной (весьма полезной информации), выделив под это до 100mb (хостинг халявный и ограниченный по размеру). Для этого пришлите мне пожалуйста на почту zhsoft///@///mail.ru копии архивов документации с кратким оглавление и авторством. В частности руссификацию xMate, инструкцию по переводу приложений, какую нибудь документацию по языку и RDD и т.д.


ВОПРОСЫ

1. Правильно ли понял, что заброшены многие полезные проекты под Harbour типа miniGui, xMate, hwGui и что это "нормальная практика" развития проекта Harbour?

2. Пожалуйста предложите "свободную" связку для создания графических приложений одновременно под Win32/64/Linux типа FrameWork+Gui+[x]Harbour+ReportSystem+RddSQL(free), но которая развивается по настоящее время и существует хотя бы 3 года, например, как понял возможен вариант xMate + hwGui + xHarbour, но всё кроме Harb брошено в 1996 году, т.е. неперспективно.

3. Натолкнулся на ряд несовместимостей (в препроцессоре, использовании "внешних" функций на C)! Если не сложно - приведите другие примеры несовместимости и глюков [x]Harbour, которые необходимо "особо" обходить!

Важная мелочь?

Что проблема работы с 866 кодировкой в Upper/Lower не решена? Это критично, т.к. используется в индексах, да и предполагаю продолжать развитие Clipper проекта, постепенно убирая несовместимости с Harbour пока на 100% не буду уверен в "безглючности" Harbour.

Что нет функции TempFile() из CT в xHarbour?


Заранее спасибо за ответы!!!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 139 , стр: 1 2 3 4 5 6 7 All [только новые]


Администратор




Пост N: 1350
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 11:43. Заголовок: AndreyZh пишет: Что..


AndreyZh пишет:

 цитата:
Что проблема работы с 866 кодировкой в Upper/Lower не решена?



А разве есть какая-то проблема ?

К слову. minigui жив, да и hwgui ожил в последнее время.

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





Пост N: 10
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 12:32. Заголовок: А разве есть какая-т..


А разве есть какая-то проблема ?

Не работает xharbour последний релиз:
индекс: Upper(name)
запись: Вася Пупкин

a:="вася"
DbSeek(Upper(a)) // Не находит

a:="Вася"
DbSeek(a) // находит

Да и тема была на форуме.

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





Пост N: 11
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 12:40. Заголовок: В догонку посмотрел ..


В догонку посмотрел свои "свежие" скачки:

hwGui - последнее описание от 2004 года (автору сейчас LetoDb, наверное интересно?)
minGui - не увидел развития с 2006 года, хотя "версия" документации от 2009

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




Пост N: 1351
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 13:22. Заголовок: AndreyZh пишет: А р..


AndreyZh пишет:

 цитата:
А разве есть какая-то проблема ?

Не работает xharbour последний релиз:
индекс: Upper(name)
запись: Вася Пупкин

a:="вася"
DbSeek(Upper(a)) // Не находит

a:="Вася"
DbSeek(a) // находит

Да и тема была на форуме.



Кодовая страница подключена ?

Надо выдать команды
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage( "RU866" )

какой результат выдает
? Upper('вася')
?


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




Пост N: 1352
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 13:46. Заголовок: AndreyZh пишет: В д..


AndreyZh пишет:

 цитата:
В догонку посмотрел свои "свежие" скачки:

hwGui - последнее описание от 2004 года (автору сейчас LetoDb, наверное интересно?)
minGui - не увидел развития с 2006 года, хотя "версия" документации от 2009



По hwgui. Вы имеете в виду саму библиотеку или документацию к ней ? Если библиотеку, то несколько человек что-то по ней делают, 5 дней назад был коммит.
По minigui. Загляните в раздел gui на этом форуме, Григорий же обновления постоянно выкладывает.

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





Пост N: 12
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 14:28. Заголовок: Надо выдать команды ..



 цитата:
Надо выдать команды
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage( "RU866" )



Проверил - не работает. xHarbour 1.2.1
Тема уже обсуждалась http://clipper.borda.ru/?1-4-0-00000385-000-0-0-1227168755 Что проблема не решена?

Вот по - этому и открыл тему... Документации на русском почти ноль, на импортном - просто техническое описание функций, описание ошибок компиляции и времени выполнения вообще не нашел... А себя считаю разработчиком прикладных задач и ковыряние в чужом коде (особено системы разработки) не очень приятно.

Раннее и сегодня попытался посмотреть miniGui/hwGUI, но она ориентированна на Harbour, т.е. на xHarbour не реагирует (конечно можно разобраться, но "не моё") и абсолютно непонятно:

1. Автор рускоязычный hwGui, а "корявые" и возможно неполные доки на английском.
2. Зачем мне для использования среды нужно собирать её из исходников? Что это спорт такой? Обратный пример: По описанию Верченко А. за 20 минут установил xHarbour и спокойно начал компилировать и использовать примеры программ, а через пару часов уже пытался работать со своей системой.
3. "Пробегала" ссылка на описание "для новичков" по этим системам и их руссификации - сейчас ни одна ссылка не работает!!!



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




Пост N: 1353
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 14:54. Заголовок: AndreyZh пишет: Про..


AndreyZh пишет:

 цитата:
Проверил - не работает. xHarbour 1.2.1
Тема уже обсуждалась http://clipper.borda.ru/?1-4-0-00000385-000-0-0-1227168755 Что проблема не решена?



Я просто забыл об этом, все-таки полтора года назад тема была
Вроде бы исправлено почти год назад:

2009-04-14 13:12 UTC+0300 Phil Krylov <phil a t newstar.rinet.ru>
* include/hbexprb.c
* include/hbexprop.h
* source/common/expropt2.c
! restored Mindaugas code for UPPER optimization and added logic to
optimize UPPER for strings with only Latin letters, digit and spaces
just like in Clipper. Now code like:
? Upper( chr(65)+chr(66)+chr(67)+"0123 QWE asd " ) + "ZXC"
is fully optimized at compile time to single string expression.
(by Przemyslaw Czerpak and Mindaugas Kavaliauskas, borrowed from Harbour)

* include/hbclass.ch
* Some comment typos fixed.


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





Пост N: 13
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 16:40. Заголовок: Я просто забыл об эт..



 цитата:
Я просто забыл об этом, все-таки полтора года назад тема была
Вроде бы исправлено почти год назад:



Как понять и воспользоваться сообщением - не понял!

Увы! Даже проблема в такой мелочи? Пример SS


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




Пост N: 1448
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 18:13. Заголовок: Pasha пишет: Надо в..


Pasha пишет:

 цитата:
Надо выдать команды
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage( "RU866" )

какой результат выдает
? Upper('вася')
?



Да проходили же уже эту тему ;)

Proc main
Local a:='вася'
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage( "RU866" )


? Upper(a) // так работает
? Upper('вася') // не пашет


return


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




Пост N: 1449
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 18:21. Заголовок: Dima пишет: ? Upper..


Dima пишет:

 цитата:
? Upper('вася') // не пашет


Кстати маловероятно что подобный код будет использоваться в реальной программе.


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




Пост N: 1450
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 18:33. Заголовок: AndreyZh пишет: Что..


AndreyZh пишет:

 цитата:
Что нет функции TempFile() из CT в xHarbour?


В Libnf.lib есть

В прочем и самому ее написать не составит особого труда.

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




Пост N: 1354
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 18:53. Заголовок: AndreyZh пишет: Как..


AndreyZh пишет:

 цитата:
Как понять и воспользоваться сообщением - не понял!

Увы! Даже проблема в такой мелочи?



Да все просто. Фил исправил этот баг в upper 24.4.2009. У Вас, по видимому сборка xHarbour более ранняя, в которой баг еще есть
Вывод: надо использовать сборку после этой даты. Поскольку релиза после марта 2009 кажется не было, надо собрать xHb самому (ничего в этом военного нет), или найти уже готовую сборку. Их время от времени кто-нибудь выкладывает, даже на этом форуме


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




Пост N: 1451
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 19:12. Заголовок: Pasha Ни чего не ис..


Pasha
Ни чего не исправлено. Сливал исходники пару дней назад и пересобирал Xharbour

? Upper('вася') // выдает вася


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





Пост N: 14
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 19:14. Заголовок: Кстати маловероятно ..



 цитата:
Кстати маловероятно что подобный код будет использоваться в реальной программе



Выше пояснял, что у меня индексы Upper(name), по которым осуществляется поиск и работа, т.е. мне нужная родная функция, но это мелочь - больше волнует сколько "ещё открытий чудных" может ожидать при использовании xHarbour.


 цитата:
В Libnf.lib есть



А шо она тогда не цепляется при сборке приложения?



 цитата:
В прочем и самому ее написать не составит особого труда



Спасибо - но уже и сам написал (давно и для CT III где этот глюк уже присутствовал). НО мне нужна полная совместимость Clipper (буду модифицировать) и xHarbour приложений и здесь уже сложности - самописка TempFile существенно более тормозная и слишком активно используемая.



 цитата:
Да все просто. Фил исправил этот баг в upper 24.4.2009. У Вас, по видимому сборка xHarbour более ранняя, в которой баг еще есть
Вывод: надо использовать сборку после этой даты. Поскольку релиза после марта 2009 кажется не было, надо собрать xHb самому (ничего в этом военного нет), или найти уже готовую сборку



1. Не увидев ответа сам поискал на буржуйских сайтах - проблема не решена (до 25.02.2010) и самое "лучшее" предложение заменить "приложенным" C модулем, соответствующий модуль xHarbour и пересобрать проект, т.е. компилятор превращать в самописку.
2. Свежее, чем у меня официальных сборок xHarbour - НЕТ. Использовать самосборки - как потом контролировать инструмент.
3. Уже пояснил, что не любитель "системного" программирования, да и времени на это не очень много....

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




Пост N: 1452
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 19:24. Заголовок: AndreyZh пишет: А ш..


AndreyZh пишет:

 цитата:
А шо она тогда не цепляется при сборке приложения?


а чего бы ей самой цепляться ;)))
Прицепи сам.

У тебя же в Clipper , доп библиотеки сами не цепляются.


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





Пост N: 15
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 19:33. Заголовок: Dima. Спасибо! Думал..


Dima. Спасибо! Думал, что в xHarbour "всё включено".

Еще "несовместимость":

На Clipper конструкция работает (компилируется), а в xHarbour НЕТ:
local ...
<блок программы>
priv oVar
oVar := ...

Но работает конструкция:
local ...
priv oVar
<блок программы>
oVar := ...


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




Пост N: 1453
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.03.10 19:43. Заголовок: AndreyZh Проверил ,..


AndreyZh
Проверил , компилятся оба варианта.

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





Пост N: 16
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 19:52. Заголовок: Извините! Вылетает ..


Извините!

Вылетает при выполнении - пример исправленного кода:

* Головной модуль. Обслуживание списка накладных.
PROC pReceipts()
LOCA sOp:="0200", cOldCol:=SetColor(), nKeys:=0, nCount:=0, aArr:={}
**** Так работает
PRIV oTb
S_PROC
J_OPEN
pInvOrder()

// Начали.
SELE RECEIPTS ORDE nOrder REC nRecno
DbSkip(-1)
*** а так порождает ошибку времени выполнения PRIV oTb

// Открываем окно просмотра списка.
fSwopen(0,0,24,79,cColor,3)
@ 0,44 SAY " Накладные на приход от поставщика " COLOR cMainc
@ 6,0 SAY Chr(195)+Repl(Chr(196),78)+Chr(180)
@ 8,0 SAY Chr(195)+Repl(Chr(196),78)+Chr(180)
oTB := TBRowseDB(7,1,23,78)
oTB:headSep := Chr(196)
oTB:addColumn( TBColumnNew("ДатаНак.|N_ накладной|КодН|О|СуммаСоСкид.|Отср.| Ост.оплата |КодД|Сч|З|О|Р|У|Г",{|| cDemoInvRR() }) )

// Описываю массив для вызова меню дополнительных задач.
PRIV aArg:={{" Статистика по отобранной группе документов","pPrSwGrDoc(2)",FALSE},; ...........
{"aF10 Снятие всех пометок по отбору док.в группу","pGroupObj(oTb,.F.)",TRUE}}

DO WHIL TRUE
#include "table.ch"

**** Место вылета по ошибке
DO CASE
CASE nKeys == K_INS; IF lAddChInv( TRUE) THEN REF_INV // REC
..............................
CASE nKeys == K_ESC; EXIT
ENDC

// Расчет числа позиций, отражаем наименование клиента и фамилию И.О. кладовщика.
pStab(oTb)
pDemoShap(cId)
ENDD
nOrder := zOrd()
nRecno := RecNo()
fDeact(cOldCol)

pCloseJornal(sOp,1,"")
RETU


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




Пост N: 1355
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 19:56. Заголовок: Dima пишет: Pasha ..


Dima пишет:

 цитата:
Pasha
Ни чего не исправлено. Сливал исходники пару дней назад и пересобирал Xharbour

? Upper('вася') // выдает вася



Я тоже перепроверил - работет. По сырцам видно, что исправлено.

Local cStr := 'Вася'

REQUEST HB_CODEPAGE_RU866

hb_SetCodepage( "RU866" )
? Upper('Вася')
? Upper(cStr)
wait

Оба вызова дают правильный результат

Дима, собери маленький тест, и глянь получившийся файл *.с. Там должен быть вызов функции upper
Тест вроде такого

REQUEST HB_GT_WIN
REQUEST HB_GT_WIN_DEFAULT

function Main()
REQUEST HB_CODEPAGE_RU866

hb_SetCodepage( "RU866" )
? Upper('Вася')
wait
return nil

Функция main в модуле с должны быть примерно такой:

HB_FUNC( MAIN ) 
{
static const BYTE pcode[] =
{
HB_P_MODULENAME, /* ua.prg:MAIN */
'u', 'a', '.', 'p', 'r', 'g', ':', 'M', 'A', 'I', 'N', 0,
/* 00013 */ HB_P_BASELINE, 7, 0, /* 7 */
HB_P_PUSHSYMNEAR, 4, /* HB_SETCODEPAGE */
HB_P_PUSHNIL,
HB_P_PUSHSTRSHORT, 6, /* 6 */
'R', 'U', '8', '6', '6', 0,
HB_P_DOSHORT, 1,
/* 00029 */ HB_P_LINEOFFSET, 1, /* 8 */
HB_P_PUSHSYMNEAR, 5, /* QOUT */
HB_P_PUSHNIL,
HB_P_PUSHSYMNEAR, 6, /* UPPER */
HB_P_PUSHNIL,
HB_P_PUSHSTRSHORT, 5, /* 5 */
130, 160, 225, 239, 0,
HB_P_FUNCTIONSHORT, 1,
HB_P_DOSHORT, 1,
/* 00048 */ HB_P_LINEOFFSET, 3, /* 10 */
HB_P_PUSHSYMNEAR, 7, /* __WAIT */
HB_P_PUSHNIL,
HB_P_DOSHORT, 0,
/* 00055 */ HB_P_LINEOFFSET, 4, /* 11 */
HB_P_PUSHNIL,
HB_P_RETVALUE,
HB_P_ENDPROC
/* 00060 */
};

hb_vmExecute( pcode, symbols );
}



Проблеме была в том, что компилятор выбрасывал вызов upper, и пытался оптимизировать строку-константу сам, и без нужной кодовой страницы делал это неправильно.

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





Пост N: 17
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 22.03.10 20:02. Заголовок: Опять наврал! Назнач..


Опять наврал! Назначал после использования (на Clipper прокатывало)

oTB := TBRowseDB(7,1,23,78)
oTB:headSep := Chr(196)
oTB:addColumn( TBColumnNew("ДатаНак.|N_ накладной|КодН|О|СуммаСоСкид.|Отср.| Ост.оплата |КодД|Сч|З|О|Р|У|Г",{|| cDemoInvRR() }) )
PRIV oTb



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

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