Автор | Сообщение |
|
| |
Пост 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? Заранее спасибо за ответы!!!
|
|
|
Ответов - 139
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|
|
| Администратор
|
Пост N: 1356
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:02. Заголовок: AndreyZh пишет: 1. ..
AndreyZh пишет: цитата: | 1. Не увидев ответа сам поискал на буржуйских сайтах - проблема не решена (до 25.02.2010) и самое "лучшее" предложение заменить "приложенным" C модулем, соответствующий модуль xHarbour и пересобрать проект, т.е. компилятор превращать в самописку. 2. Свежее, чем у меня официальных сборок xHarbour - НЕТ. Использовать самосборки - как потом контролировать инструмент. 3. Уже пояснил, что не любитель "системного" программирования, да и времени на это не очень много.... |
| Да это же не системное программирование, да и не программирование вообще. Это сборка. То есть настроил среду, запустил батник и получил готовый харбор. Впрочем, как хотите, Ни заставлять, ни агитировать, ни уговаривать я не буду, мне то это зачем. Мое дело - обрисовать текущее состояние и помочь в решении проблем, если такие возникнут. А баг с upper таки исправлен. Кто-нибудь, проверьте еще для ясности. Кстати, я сам использую сборку харбора с этим багом, и знаю о нем. Просто у меня заведомо нет конструкций, где upper вызывается со строковой константой, а не с переменной или полем таблицы.
|
|
|
|
| |
Пост N: 1454
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.03.10 20:02. Заголовок: Pasha пишет: Local ..
Pasha пишет: цитата: | Local cStr := 'Вася' REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) ? Upper('Вася') ? Upper(cStr) wait |
| Проверил ? Upper('Вася') // не работает Текст с такой HB_FUNC( MAIN ) { static const BYTE pcode[] = { /* 00000 */ HB_P_BASELINE, 3, 0, /* 3 */ HB_P_PUSHSYMNEAR, 2, /* HB_SETCODEPAGE */ HB_P_PUSHNIL, HB_P_PUSHSTRSHORT, 6, /* 6 */ 'R', 'U', '8', '6', '6', 0, HB_P_DOSHORT, 1, /* 00016 */ HB_P_LINEOFFSET, 3, /* 6 */ HB_P_PUSHSYMNEAR, 3, /* QOUT */ HB_P_PUSHNIL, HB_P_PUSHSYMNEAR, 4, /* UPPER */ HB_P_PUSHNIL, HB_P_PUSHSTRSHORT, 5, /* 5 */ 162, 160, 225, 239, 0, HB_P_FUNCTIONSHORT, 1, HB_P_DOSHORT, 1, /* 00035 */ HB_P_LINEOFFSET, 4, /* 7 */ HB_P_PUSHSYMNEAR, 3, /* QOUT */ HB_P_PUSHNIL, HB_P_DOSHORT, 0, /* 00042 */ HB_P_LINEOFFSET, 5, /* 8 */ HB_P_ENDPROC /* 00045 */ }; hb_vmExecute( pcode, symbols ); }
|
|
|
|
| |
Пост N: 1455
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.03.10 20:05. Заголовок: AndreyZh пишет: у м..
AndreyZh пишет: цитата: | у меня индексы Upper(name) |
| в индексах работает нормально.
|
|
|
|
| Администратор
|
Пост N: 1357
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:08. Заголовок: А такой тест: REQUE..
А такой тест: REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) ? Upper('Вася') wait какой будет код на C ?
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 12.11.06
|
|
Отправлено: 22.03.10 20:13. Заголовок: Господа, а можно мне..
Господа, а можно мне на почту zhsoft@mail.ru прислать необходимые файлы, что бы не связываться со "сборками", а то жалко бросать начатые эксперимент?
|
|
|
|
| |
Пост N: 1456
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.03.10 20:15. Заголовок: Pasha пишет: какой ..
Pasha пишет: HB_FUNC( MAIN ) { static const BYTE pcode[] = { /* 00000 */ HB_P_BASELINE, 6, 0, /* 6 */ HB_P_PUSHSYMNEAR, 2, /* HB_SETCODEPAGE */ HB_P_PUSHNIL, HB_P_PUSHSTRSHORT, 6, /* 6 */ 'R', 'U', '8', '6', '6', 0, HB_P_DOSHORT, 1, /* 00016 */ HB_P_LINEOFFSET, 1, /* 7 */ HB_P_PUSHSYMNEAR, 3, /* QOUT */ HB_P_PUSHNIL, HB_P_PUSHSYMNEAR, 4, /* UPPER */ HB_P_PUSHNIL, HB_P_PUSHSTRSHORT, 5, /* 5 */ 130, 160, 225, 239, 0, HB_P_FUNCTIONSHORT, 1, HB_P_DOSHORT, 1, /* 00035 */ HB_P_LINEOFFSET, 2, /* 8 */ HB_P_PUSHSYMNEAR, 5, /* __WAIT */ HB_P_PUSHNIL, HB_P_DOSHORT, 0, /* 00042 */ HB_P_LINEOFFSET, 3, /* 9 */ HB_P_PUSHNIL, HB_P_RETVALUE, HB_P_ENDPROC /* 00047 */ }; hb_vmExecute( pcode, symbols ); } Pasha пишет: цитата: | REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) ? Upper('Вася') wait |
| ? Upper('Вася') // не работает
|
|
|
|
| Администратор
|
Пост N: 1358
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:17. Заголовок: AndreyZh пишет: Опя..
AndreyZh пишет: цитата: | Опять наврал! Назначал после использования (на Clipper прокатывало) oTB := TBRowseDB(7,1,23,78) oTB:headSep := Chr(196) oTB:addColumn( TBColumnNew("ДатаНак.|N_ накладной|КодН|О|СуммаСоСкид.|Отср.| Ост.оплата |КодД|Сч|З|О|Р|У|Г",{|| cDemoInvRR() }) ) PRIV oTb |
| Я не очень понял, где возникает ошибка. Здесь переменная oTb создается оператором Private 2-й раз, после того как она была создана неявно операцией присваивания ?
|
|
|
|
| Администратор
|
Пост N: 1359
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:22. Заголовок: Dima пишет: ? Upper..
Dima пишет: цитата: | ? Upper('Вася') // не работает |
| По тексту видно, что сама функция upper вызывается, компилятор не подавляет ее вызов, и она должна отработать, и отработала у меня правильно. В чем дело - мне непонятно, я вот 20 минут назад как собрал xHarbour и прогнал тест. cStr := 'Вася' ? Upper(cStr) работает ?
|
|
|
|
| |
Пост N: 1457
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.03.10 20:30. Заголовок: Pasha пишет: cStr :..
Pasha пишет: цитата: | cStr := 'Вася' ? Upper(cStr) работает ? |
| Это и работало.
|
|
|
|
| Администратор
|
Пост N: 1360
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:30. Заголовок: AndreyZh пишет: Гос..
AndreyZh пишет: цитата: | Господа, а можно мне на почту zhsoft@mail.ru прислать необходимые файлы, что бы не связываться со "сборками", а то жалко бросать начатые эксперимент? |
| Полная сборка xHarbour вместе с сырцами с CVS получается около 20М. Как отправить ?
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 12.11.06
|
|
Отправлено: 22.03.10 20:32. Заголовок: Как быстро идёт обме..
Как быстро идёт обмен мнениями!!? цитата: | Я не очень понял, где возникает ошибка. Здесь переменная oTb создается оператором Private 2-й раз, после того как она была создана неявно операцией присваивания ? |
| Код, вызывающий ошибку: PROC pReceipts() LOCA sOp:="0200", cOldCol:=SetColor(), nKeys:=0, nCount:=0, aArr:={} S_PROC ..................................... oTB := TBRowseDB(7,1,23,78) oTB:headSep := Chr(196) ..................................... PRIV oTb // Глупо, но объявляю после инициализации .................................... DO WHIL TRUE #include "table.ch" **** Место вылета по ошибке - там ерунда типа oTb:stabilize() и т.п. DO CASE CASE nKeys == K_INS; IF lAddChInv( TRUE) THEN REF_INV // REC .............................. Извините за повторение просьбы! а можно мне на почту zhsoft@mail.ru прислать необходимые файлы, что бы не связываться со "сборками", а то жалко бросать начатые эксперимент?
|
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 12.11.06
|
|
Отправлено: 22.03.10 20:34. Заголовок: Полная сборка xHarbo..
цитата: | Полная сборка xHarbour вместе с сырцами с CVS получается около 20М. Как отправить ? |
| Мне только файлы (вероятно только компилятор и библиотеку), где произошли изменения, но если не сложно/возможно, то и 20mb сойдёт.
|
|
|
|
| Администратор
|
Пост N: 1361
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:38. Заголовок: AndreyZh пишет: Мне..
AndreyZh пишет: цитата: | Мне только файлы (вероятно только компилятор и библиотеку), где произошли изменения, но если не сложно/возможно, то и 20mb сойдёт. |
| Если только lib, include и bin, то обьем получается небольшой Но и сырцы ведь тоже нужны, а за год изменений было очень много.
|
|
|
|
| |
Пост N: 1458
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.03.10 20:39. Заголовок: Странно все это Паве..
Странно все это Павел. У тебя работает , у меня нет function Main() REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) ? Upper('Вася') // BAD ? Upper('test') // OK wait return nil
|
|
|
|
| Администратор
|
Пост N: 1362
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:42. Заголовок: AndreyZh пишет: PRI..
AndreyZh пишет: цитата: | PRIV oTb // Глупо, но объявляю после инициализации |
| Понятно. Харбор так и работает aa := 'Hello' ? aa // результат - Hello Private aa ? aa // результат - nil То есть, если создаваемая private - переменная уже существует, то харбор очищает ее значение. Если в клиппере не так - то это несовместимость с клиппером
|
|
|
|
| |
Пост N: 21
Зарегистрирован: 12.11.06
|
|
Отправлено: 22.03.10 20:43. Заголовок: Но и сырцы ведь тоже..
цитата: | Но и сырцы ведь тоже нужны, а за год изменений было очень много |
| Если "сырцы" - исходный код, то мне он ПОКА не нужен!
|
|
|
|
| постоянный участник
|
Пост N: 847
Зарегистрирован: 09.10.06
|
|
Отправлено: 22.03.10 20:44. Заголовок: У меня работает :sm..
|
|
|
|
| Администратор
|
Пост N: 1363
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:45. Заголовок: Dima пишет: Странно..
Dima пишет: цитата: | Странно все это Павел. У тебя работает , у меня нет function Main() REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) ? Upper('Вася') // BAD ? Upper('test') // OK wait return nil |
| Да мне самому непонятно. Вызов функции есть, и у меня она отработала, как и должно быть Пусть кто-нибудь третий прогонит этот тестик, на любом xHarbour после апреля 2009 года
|
|
|
|
| Администратор
|
Пост N: 1364
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.03.10 20:47. Заголовок: AndreyZh пишет: Есл..
|
|
|
|
| постоянный участник
|
Пост N: 848
Зарегистрирован: 09.10.06
|
|
Отправлено: 22.03.10 20:51. Заголовок: Pasha пишет: Понятн..
Pasha пишет: цитата: | Понятно. Харбор так и работает aa := 'Hello' ? aa // результат - Hello Private aa ? aa // результат - nil То есть, если создаваемая private - переменная уже существует, то харбор очищает ее значение. |
| Так работает xHarbour, в Harbour все OK
|
|
|
Ответов - 139
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|