Автор | Сообщение |
|
| |
Пост N: 67
Зарегистрирован: 05.10.06
|
|
Отправлено: 30.11.14 11:22. Заголовок: Перевожу Clipper на консольный Харбор
Добрый день, уважаемое сообщество! Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь. Заранее всем участникам огромное спасибо!
|
|
|
Ответов - 245
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
All
[только новые]
|
|
|
| |
Пост N: 68
Зарегистрирован: 05.10.06
|
|
Отправлено: 30.11.14 11:31. Заголовок: ошибка построения индекса
Работаю с ADS Выдает ошибку построения индекса на основе данных связаных таблиц. Код имеет следующий вид: use pricen new index on kod to price use sklad new set relation to s_kodt into PRICEN index on PRICEN->cena to s_cena Ошибка: цитата: | Error ADSNTX/3010 Error 3010: Unknown alias name used with field name in index key expression.: s_cena |
| И еще одна ошибка при использовании сложных выражений в индексе: INDEX ON c_kod+IF(c_kod<0,0,IF(C_KOD==qmag,10000,if(fil>0,20000,if(osn,-10000,40000)))) TO clientss В Clipper все работает
|
|
|
|
| |
Пост N: 376
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.11.14 15:01. Заголовок: MIKHAIL пишет: Выда..
MIKHAIL пишет: цитата: | Выдает ошибку построения индекса на основе данных связаных таблиц. |
| Из справки по ADS Problem: An error occurred in the Advantage Expression Engine parser. A field name within the key expression was aliased by an unknown alias name. Solution: Advantage only supports aliases for the current work area. If an alias to another work area is referenced, this error will result. Verify the alias name is spelled properly. PS:Если не секрет , какой смысл здесь от ADS, может на CDX перейти? возможно даже и пошустрее будет. Тем более вроде как ADS заставляете работать в режиме совместимости с NTX который не умеет автоматически открывать эти индексы и соответственно не оптимизирует запросы ( за исключение наличия словаря данных). ADS хорош как компактный сервер БД c его оптимизацией SQL запросов и конечно оптимизацией фильтров используя ПРОСТЫЕ индексы, во всяком случае я для себя это определил как главное . Если использовать локальный сервер ADS ( ADSLocal32.dll) - то только как тест или с числом пользователей не более 10, Уже давно обхожусь без SET RELATION и сложных INDEX, все достаточно шустро делает сам сервер , по команде SELECT * FROM ... JOIN .. WHERE создается рабочая область собранная из нескольких таблиц как надо. PPS: Может сразу на GUI ?
|
|
|
|
| |
Пост N: 69
Зарегистрирован: 05.10.06
|
|
Отправлено: 30.11.14 21:48. Заголовок: Haz Advantage only..
Haz цитата: | Advantage only supports aliases for the current work area |
| ADS для Clipper и Harbor по разному работают? цитата: | Если не секрет , какой смысл здесь от ADS |
| Смысл в том что проект написан с использованием ADS и работает много лет, в сети до 30 активных пользователей, несколько кассовых терминалов в гипермаркете с количеством транзакций десятки тысяч в день. Задача стоит перевести проект с минимальными переделками, а потом уже оптимизировать. цитата: | Уже давно обхожусь без SET RELATION и сложных INDEX, все достаточно шустро делает сам сервер , по команде SELECT * FROM ... JOIN .. WHERE |
| Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее? Или лучше пример использования запросов и разбор ответов. С MySQL дело имел, такой подход интересно было бы использовать цитата: | PPS: Может сразу на GUI ? |
| В смысле? Забить на проект который писался 20 лет и с нуля новый разработать? Даже если не с нуля, нужно перевести то что есть, а потом уже GUI наверное...
|
|
|
|
| |
Пост N: 379
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.11.14 22:02. Заголовок: MIKHAIL пишет: ADS ..
MIKHAIL пишет: цитата: | ADS для Clipper и Harbor по разному работают? |
| Скорее всего по разному, вроде мелькала такая инфа, но утверждать не стану Для Clipper версия с 8 не поддерживается а уже текущая 11 . MIKHAIL пишет: цитата: | Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее? |
| ADS поддерживает SQL почитать можно в справке. http://devzone.advantagedatabase.com/dz/webhelp/Advantage11.1/index.html Примеры вроде Dima тут не раз выкладывал можно поискать по форуму. MIKHAIL пишет: цитата: | Забить на проект который писался 20 лет |
| GUI морда не сильно увеличит время перевода с Clipper , но согласен в console привычнее и быстрее будет
|
|
|
|
| Администратор
|
Пост N: 3229
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.14 08:06. Заголовок: Клиент ads для клипп..
Клиент ads для клиппера поддерживает индексацию на клиенте, а все 32-х разрядные клиенты ads, в том числе харбор-клиент, не поддерживают. Поэтому такое создание индекса не сработает. Но это вопрос ads, а не харбора, и вопрос неразрешимый.
|
|
|
|
| |
Пост N: 11
Зарегистрирован: 05.11.14
|
|
Отправлено: 01.12.14 12:30. Заголовок: MIKHAIL пишет: И ещ..
MIKHAIL пишет: цитата: | И еще одна ошибка при использовании сложных выражений в индексе: INDEX ON c_kod+IF(c_kod<0,0,IF(C_KOD==qmag,10000,if(fil>0,20000,if(osn,-10000,40000)))) TO clientss В Clipper все работает |
| А если попробовать: INDEX ON c_kod+ IIF(c_kod<0,0, IIF(C_KOD==qmag,10000, iif(fil>0,20000, iif(osn,-10000,40000)))) TO clientss
|
|
|
|
| |
Пост N: 71
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.12.14 14:52. Заголовок: VitalClip пишет: А ..
VitalClip пишет: цитата: | А если попробовать: INDEX ON c_kod+IIF(c_kod<0,0,IIF(C_KOD==qmag,10000,iif(fil>0,20000,iif(osn,-10000,40000)))) TO clientss |
| Не работает. Ну это не так принципиально, перепишу.
|
|
|
|
| |
Пост N: 72
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.12.14 21:34. Заголовок: Еще вопросики: 1.Как..
Еще вопросики: 1.Как запустить консольный Harbor в виде системной службы, в скрытом виде? 2.Можно ли одновременно использовать ADS в одной программе по IP и IPX протоколу, по выбору? Мне нужно конектиться к БД которая на NW лежит и одновременно подключаться к удаленной БД через интернет. 3.Можно ли в консольной версии Harbor подключить такие библиотеки как FR ?
|
|
|
|
| постоянный участник
|
Пост N: 3789
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.14 22:01. Заголовок: MIKHAIL пишет: 3.Мо..
MIKHAIL пишет: цитата: | 3.Можно ли в консольной версии Harbor подключить такие библиотеки как FR ? |
| Да. У меня задачи с ним с 2008 года работают, только у меня больше всего на хХарборе, но это не принципиально. Демонстрашки можешь скачать с ... Облом, нет уже сайта http://www.paritetsoft.ru/frh.htm Ну тогда предлагаю мои примеры и просмотр файлов FR на МиниГуи смотри здесь https://cloud.mail.ru/public/39dd9efd1bbe/FastReport40 Если что заинтересует, пиши.
|
|
|
|
| |
Пост N: 380
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.12.14 22:23. Заголовок: 1.Как запустить конс..
цитата: | 1.Как запустить консольный Harbor в виде системной службы, в скрытом виде? |
| В исходниках есть пример службы core\contrib\hbnetio\utils\hbnetio
|
|
|
|
| |
Пост N: 73
Зарегистрирован: 05.10.06
|
|
Отправлено: 02.12.14 11:18. Заголовок: Error BASE/1005 Mes..
Error BASE/1005 Message not found: TBCOLUMN:_COLORBLOC Где посмотреть справку по Tbrowse ?
|
|
|
|
|
| Администратор
|
Пост N: 3232
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.12.14 12:48. Заголовок: Справку можно посмот..
Справку можно посмотреть в ng по клипперу, а по поводу этой ошибки: замените выражение вида <obj>:colorbloc на <obj>:colorblock
|
|
|
|
| |
Пост N: 74
Зарегистрирован: 05.10.06
|
|
Отправлено: 02.12.14 13:54. Заголовок: Pasha пишет: замени..
Pasha пишет: цитата: | замените выражение вида <obj>:colorbloc на <obj>:colorblock |
| Спасибо, глаз замылился, а в Clipper и так работало... Еще вопросы: Я так понимаю что цветовая палитра может быть более расширенная? Где посмотреть полную карту палитры? цвет вида g*+/b не мигает, как исправить? Какие можно шрифты использовать в консоли?
|
|
|
|
| |
Пост N: 117
Зарегистрирован: 21.04.13
|
|
Отправлено: 03.12.14 15:32. Заголовок: Какие можно шрифты использовать в консоли?
Моноширинные. Courier New, Lucida Console,Consolas..
|
|
|
|
| |
Пост N: 75
Зарегистрирован: 05.10.06
|
|
Отправлено: 05.12.14 13:46. Заголовок: petr707 пишет: Моно..
petr707 пишет: цитата: | Моноширинные. Courier New, Lucida Console,Consolas.. |
| А работать со шрифтами так же как и в clipper? или там своя система управления шрифтами?
|
|
|
|
| |
Пост N: 4294
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.14 14:04. Заголовок: для WVT терминала hb..
для WVT терминала hb_gtInfo(HB_GTI_CODEPAGE, 255) hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,4) тут размеры HB_GtInfo(HB_GTI_FONTSIZE , nFontH) HB_GtInfo(HB_GTI_FONTWIDTH, nFontW)
|
|
|
|
| |
Пост N: 77
Зарегистрирован: 05.10.06
|
|
Отправлено: 23.02.15 13:59. Заголовок: Dima пишет: для WV..
Dima пишет: цитата: | для WVT терминала hb_gtInfo(HB_GTI_CODEPAGE, 255) hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,4) тут размеры HB_GtInfo(HB_GTI_FONTSIZE , nFontH) HB_GtInfo(HB_GTI_FONTWIDTH, nFontW) |
| Не понимаю как использовать шрифты различных размеров одновременно? Мне нужно стандартный шрифт и крупнее в 5 -6 раз Как могу поменять толщину шрифта? Как изменить шрифт у в полноэкранном режиме? Как автоматически запускть в полноэкранном режиме?
|
|
|
|
| |
Пост N: 4520
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.02.15 14:19. Заголовок: у себя делаю так при..
у себя делаю так примерно. #REQUEST HB_GT_WVT hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,4) nWidth := HB_GtInfo(HB_GTI_DESKTOPWIDTH) nHeight := HB_GtInfo(HB_GTI_DESKTOPHEIGHT) nFontH := Int(nHeight/25) nFontW := Int(nWidth /80) HB_GtInfo(HB_GTI_FONTSIZE , nFontH) HB_GtInfo(HB_GTI_FONTWIDTH, nFontW) setmode(25,80) Но это будет не полноэкранный режим а окно. Что касается атрибутов шрифта , копни "hbgtinfo.ch"
|
|
|
|
| |
Пост N: 4521
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.02.15 14:55. Заголовок: Пример самодостаточн..
Пример самодостаточный , поиграйся с ним . #include "hbgtinfo.ch" proc main local nWidth,nHeight,nFontH,nFontW REQUEST HB_GT_WVT_DEFAULT REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") REQUEST HB_CODEPAGE_RU866 hb_cdpSelect( "RU866" ) hb_gtInfo(HB_GTI_MAXIMIZED,.t.) hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,4) nWidth := HB_GtInfo(HB_GTI_DESKTOPWIDTH) nHeight := HB_GtInfo(HB_GTI_DESKTOPHEIGHT) nFontH := Int(nHeight/25) nFontW := Int(nWidth /80) HB_GtInfo(HB_GTI_FONTSIZE , nFontH) HB_GtInfo(HB_GTI_FONTWIDTH, nFontW) setmode(25,80) ? "TEST" ? "ПРОВЕРКА" wait return
|
|
|
|
| постоянный участник
|
Пост N: 488
Зарегистрирован: 13.10.05
|
|
Отправлено: 24.02.15 09:19. Заголовок: Речь идет о БД SQL..
цитата: | Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее? |
| Я использую локальный ADS для формирования данных для некоторых отчетов, примерно так цитата: | AdsConnect('C:\') nSele:=Select() ; Select (nSele+1) AdsCreateSQLStatement('QUERY', 2) sQlStr:='SELECT DISTINCT w.n_otdel,k.kucha,k.Nomk,k.fam,k.im,k.ot,k.pol,k.birth_date,'; + 'k.DOC_TYPE,k.DOC_SER,k.DOC_NUM,k.NO_POLIS,k.SMK_CODE,'; + 'k.POLIS_SER,k.POLIS_NUM,k.EDIN_POLIS,k.NASP_CODE2,W.S_TYPE '; + ' FROM '+Par2+'ARC\Karta kT, '; + Par2+'ARC\SWIST W,'; + Par2+'KLIENT K '; + ' where ((kT.Unicum = K.Unicum) and (kT.N_TALON = W.N_TALON)'; +' AND (K.N_TARIF =0 ) AND (kT.Oplata =2) AND '; + IIF(i=1,' (W.S_TYPE ='+chr(39)+'R'+chr(39)+') ',' (W.S_TYPE <> '+chr(39)+'R'+chr(39)+') '); + ') ORDER BY 4,5' AdsPrepareSQL(sQlStr) AdsExecuteSQL(sQlStr) nRecCount:=RecCount() if nRecCount > 0 |
| Создание индексов только в RDD CDX. Конфликтов не замечено, хХарбоур 1 Если у тебя много подключений? то желательно НЕ локальный сервер ADS
|
|
|
|
| |
Пост N: 78
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.02.15 10:19. Заголовок: Vlad04 пишет: nRecC..
Vlad04 пишет: цитата: | nRecCount:=RecCount() if nRecCount > 0 |
| А какой формат возвращаемых данных? Как их разбирать?
|
|
|
|
|
| |
Пост N: 79
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.02.15 12:15. Заголовок: Еще вопросы: - можно..
Еще вопросы: - можно ли вставить картинку в Tbrowse ? - где можно посмотреть примеры подключения к MYSQL ?
|
|
|
|
| постоянный участник
|
Пост N: 489
Зарегистрирован: 13.10.05
|
|
Отправлено: 24.02.15 14:23. Заголовок: А какой формат возвр..
цитата: | А какой формат возвращаемых данных? Как их разбирать? |
| Это та же DBF. Формат возвращаемых данных = Формату исходных полей, которые учавствуют в запросе.
|
|
|
|
| |
Пост N: 469
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.15 14:25. Заголовок: MIKHAIL пишет: А ка..
MIKHAIL пишет: цитата: | А какой формат возвращаемых данных? Как их разбирать? |
| 1) в результате выполнения SQL запроса получаем открытую рабочую область с записями по условию SQL 2) разбирать как обычную раб область к примеру while !eof() ...skip ... end MIKHAIL пишет: цитата: | где можно посмотреть примеры подключения к MYSQL |
| в примерах MiniGui есть несколько , вот один C:\MiniGUI\SAMPLES\BASIC\MYSQL\ Vlad04 - опередил
|
|
|
|
| |
Пост N: 4525
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 14:44. Заголовок: MIKHAIL пишет: - мо..
MIKHAIL пишет: цитата: | - можно ли вставить картинку в Tbrowse ? |
| Картинки показывать можно но в бровс вставить скорее всего не получится (ну разве что в заголовок) и для этих целей лучше использовать одну из GUI библиотек.
|
|
|
|
| |
Пост N: 80
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.02.15 15:43. Заголовок: Dima пишет: Пример ..
Dima пишет: цитата: | Пример самодостаточный , поиграйся с ним . |
| А с какими параметрами поиграться? как добиться одновременного использования шрифтов разных размеров? У меня меняется шрифт на всем экране. А в полноэкранном режиме впечатление такое что справа еще отступ символов на 10, 80 символов выводит не до конца экрана...
|
|
|
|
| |
Пост N: 4526
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 15:52. Заголовок: MIKHAIL пишет: как ..
MIKHAIL пишет: цитата: | как добиться одновременного использования шрифтов разных размеров? |
| Боюсь ни как...
|
|
|
|
| |
Пост N: 81
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.02.15 16:22. Заголовок: Dima пишет: Боюсь н..
Dima пишет: т.е. только под GUI можно?
|
|
|
|
| |
Пост N: 4527
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 16:30. Заголовок: MIKHAIL пишет: т.е...
MIKHAIL пишет: цитата: | т.е. только под GUI можно? |
| Да
|
|
|
|
| |
Пост N: 122
Зарегистрирован: 21.04.13
|
|
Отправлено: 24.02.15 17:59. Заголовок: Не совсем так..
Видимо, все-таки можно иметь разные шрифты в разных открытых окнах. В пределах одного окна - только один размер.
|
|
|
|
| |
Пост N: 4528
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 18:01. Заголовок: petr707 пишет: Види..
petr707 пишет: цитата: | Видимо, все-таки можно иметь разные шрифты в разных открытых окнах. |
| да это понятно что в разных можно
|
|
|
|
|
| |
Пост N: 83
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.02.15 17:36. Заголовок: Как подключить мышку..
Как подключить мышку для WVT терминала ?
|
|
|
|
| |
Пост N: 123
Зарегистрирован: 21.04.13
|
|
Отправлено: 27.02.15 19:01. Заголовок: mousetst.prg
Можно начать с mousetst.prg из комплекта HBxx
|
|
|
|
| |
Пост N: 84
Зарегистрирован: 05.10.06
|
|
Отправлено: 28.02.15 09:39. Заголовок: petr707 пишет: Можн..
petr707 пишет: цитата: | Можно начать с mousetst.prg из комплекта HBxx |
| А как привязать к prompt, achoice, get ? Неужели нет встроенного механизма обработки стандартных объектов? Работа с тачскрином аналогична мышке?
|
|
|
|
| |
Пост N: 85
Зарегистрирован: 05.10.06
|
|
Отправлено: 28.02.15 10:06. Заголовок: petr707 пишет: В пр..
petr707 пишет: цитата: | В пределах одного окна - только один размер. |
| А может есть какие нибудь функции вывода текста в графике другим шрифтом, как в clipper например: GWRITEAT(X , Y , cString, nColor, LLG_MODE_SET, aFont)
|
|
|
|
| |
Пост N: 4556
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.02.15 10:13. Заголовок: harbour\contrib&..
harbour\contrib\gtwvg\ Там есть примеры
|
|
|
|
| |
Пост N: 124
Зарегистрирован: 21.04.13
|
|
Отправлено: 28.02.15 13:53. Заголовок: А так ли уж полезна мышка в VWT...
Achoice и get будут реагировать на мышку, как только откроется прием событий от мышки INKEY_ALL Для GET мышка может дать проблему за счет произвольного доступа к любому поле на форме, если специально об этом не позаботиться. Клавишками - только последовательный(ну или контролируемый программой) обход полей ввода на форме. Мышка для VWT это все же "эрзац". Возможно, есть смысл выбрать сразу GUI (графику с мышкой), если тип задачи этого сильно требует.
|
|
|
|
| |
Пост N: 86
Зарегистрирован: 05.10.06
|
|
Отправлено: 28.02.15 21:25. Заголовок: petr707 пишет: есл..
petr707 пишет: цитата: | если тип задачи этого сильно требует. |
| Просто хочется под планшет интерфейс адаптировать, никогда с мышкой не требовалось работать... А как открыть прием событий INKEY_ALL для prompt, get, achoice и tbrowse ?
|
|
|
|
| |
Пост N: 125
Зарегистрирован: 21.04.13
|
|
Отправлено: 28.02.15 22:54. Заголовок: EVENTMASK
Поиск по EVENTMASK в этой конфе даст наводки. И смотрите примеры PRG из комплекта поставки Harbour
|
|
|
|
| |
Пост N: 87
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.03.15 15:07. Заголовок: petr707 пишет: В пр..
petr707 пишет: цитата: | В пределах одного окна - только один размер. |
| Видимо все же можно выводить другой шрифт с помощью Wvt_DrawLabel
|
|
|
|
| |
Пост N: 4569
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.03.15 21:46. Заголовок: MIKHAIL Если время ..
MIKHAIL Если время есть и желание то конечно лучше все делать в GUI. Согласен с Петром.
|
|
|
|
|
| |
Пост N: 103
Зарегистрирован: 05.10.06
|
|
Отправлено: 31.08.15 06:28. Заголовок: Можно ли запустить н..
Можно ли запустить на выполнение программу без открытия окна? Или в скрытом режиме, либо в трее ?
|
|
|
|
| |
Пост N: 146
Зарегистрирован: 21.04.13
|
|
Отправлено: 31.08.15 07:22. Заголовок: Можно
Нужно уточнить нужные условия запуска - зачем без окна ? Чтобы картинка не мелькала ? Задачу, свернутую в трей, оператор может поднять и снять(удалить). 1) Запуск от любой обертки вида START ..c параметрами , RUNAS и т.д. 2) По Заданию планировщика Windows - разовому или постоянно существующему, особенно если от другого профиля 3) Написать на Harb свой запускатель с нужными свойствами 4) Окно может быть, но быть невидимым. Это устроит ?
|
|
|
|
| |
Пост N: 5260
Зарегистрирован: 17.05.05
|
|
Отправлено: 31.08.15 08:35. Заголовок: MIKHAIL пишет: Мож..
MIKHAIL пишет: цитата: | Можно ли запустить на выполнение программу без открытия окна? |
| Да , как сервис.
|
|
|
|
| |
Пост N: 367
Зарегистрирован: 17.06.10
|
|
Отправлено: 31.08.15 15:53. Заголовок: Тоже без окна do wh..
Тоже без окна do while .T. бла-бла-бла sysrefresh() enddo
|
|
|
|
| |
Пост N: 104
Зарегистрирован: 05.10.06
|
|
Отправлено: 02.09.15 17:16. Заголовок: petr707 пишет: Нужн..
petr707 пишет: цитата: | Нужно уточнить нужные условия запуска - зачем без окна ? |
| Головная программа будет запускать на выполнение вспомогательную программу, работа с интерфейсом которой не нужна совсем, а выполняться она может некоторое время и само по себе окно может мешать или кто то попробует его закрыть. Поэтому нужно его как то скрыть от пользователя. Dima пишет: А вчем принципиальная разница от обычного приложения и как это реализовано? Какие управляющие команды запускают программу как сервис? fil пишет: цитата: | do while .T. бла-бла-бла sysrefresh() enddo |
| Не совсем понял в чем тут соль? я так понимаю это для MiniGUI что то? У меня консольная программа. Хотелось бы просто как то отключить консоль, что бы небыло окна
|
|
|
|
| постоянный участник
|
Пост N: 809
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.09.15 17:46. Заголовок: MIKHAIL пишет:Хотело..
MIKHAIL пишет: цитата: | Хотелось бы просто как то отключить консоль, что бы небыло окна |
| Не делайте команд (функций) очистки и вывода на экран - окна консоли не будет, т.е. CLS, CLEAER SCREEN, Say .., ? ...
|
|
|
|
| |
Пост N: 105
Зарегистрирован: 05.10.06
|
|
Отправлено: 03.09.15 11:09. Заголовок: SergKis Спасибо..
SergKis Спасибо
|
|
|
|
| |
Пост N: 106
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.09.15 14:06. Заголовок: Собираю проект, выда..
Собираю проект, выдает такую ошибку: Compiling 'nakl.prg'... nakl.prg(4211) Error E0001 Illegal character '\x00' nakl.prg(4211) Error E0030 Syntax error "syntax error at ''" 2 errors смотрю файл: 4210:return ret 4211: 4212: 4213:func get_gtd(cl,gt,x,y) что ему не нравиться? строки удалял и добавлял, смещается ссылка ошибки на номер строки и все. В clipper все без проблемм собирается.
|
|
|
|
| постоянный участник
|
Пост N: 4519
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.09.15 14:19. Заголовок: MIKHAIL пишет: что ..
MIKHAIL пишет: С ходу не могу сказать в чем ошибка. Выдели в отдельный файл эту функцию и попробуй скомпилировать. Если не получается, то давай этот кусок (т.е. полностью эту функцию)
|
|
|
|
| |
Пост N: 5278
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.09.15 15:14. Заголовок: MIKHAIL пишет: nakl..
MIKHAIL пишет: цитата: | nakl.prg(4211) Error E0001 Illegal character '\x00' |
| Была похожая штука. Это у тебя вкрался левый символ. С помощью редактора FAR manager , посмотри файл в разных кодировках и увидишь бяку. Например: Текст набран в кодировке OEM (866) и не компилится , переключаемся в кодировку ANSI (1251) , наблюдаем левый символ(ы) , валим их(его) , возвращаемся в кодировку OEM (866) , и всё прекрасно компилится.
|
|
|
|
| |
Пост N: 107
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.09.15 17:30. Заголовок: Dima пишет: Текст н..
Dima пишет: цитата: | Текст набран в кодировке OEM (866) и не компилится , переключаемся в кодировку ANSI (1251) , наблюдаем левый символ(ы) , валим их(его) , возвращаемся в кодировку OEM (866) , и всё прекрасно компилится. |
| Точно, открыл в другом редакторе, увидел, удалил все нормуль. Спасибо.
|
|
|
|
| |
Пост N: 149
Зарегистрирован: 21.04.13
|
|
Отправлено: 13.09.15 17:58. Заголовок: Вызов без окна..
Использую EXECANDWAIT отсюда click here и hb_processRun
|
|
|
|
| |
Пост N: 108
Зарегистрирован: 05.10.06
|
|
Отправлено: 15.09.15 09:17. Заголовок: ───..
──────────────────────────────────────────────────── Странная ошибка вылезает при работе через ADS: Error ADSNTX/5068 Error 5068: There is no current record. Called from TBROWSE:READRECORD(0) Called from TBROWSE:STABILIZE(0) При выводе объекта Tbrowse. При чем она как то не постоянно, один и тот же документ может отобразить без ошибки, а потом выводит несколько строк и начинает выдавать эту ошибку. при игнорировании ее выводит еще несколько строк и так далее пока не выведет все. При чем когда она начинает появляться где либо в программе, так же появляется и в других объектах, которые до этого нормально выводились. ADS 7 Novell 6.5 по IPX В Clipper эта-же база работает без ошибок.
|
|
|
|
| |
Пост N: 5286
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.09.15 09:21. Заголовок: MIKHAIL пишет: Erro..
MIKHAIL пишет: цитата: | Error ADSNTX/5068 Error 5068: There is no current record |
| индекс пересоздавал ?
|
|
|
|
| |
Пост N: 109
Зарегистрирован: 05.10.06
|
|
Отправлено: 15.09.15 11:47. Заголовок: Dima пишет: индекс ..
|
|
|
|
| |
Пост N: 110
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.10.15 08:28. Заголовок: Как можно управлять ..
Как можно управлять выводом лога ошибок программы?
|
|
|
|
| постоянный участник
|
Пост N: 1173
Зарегистрирован: 27.01.07
|
|
Отправлено: 27.10.15 08:35. Заголовок: MIKHAIL пишет: Как ..
MIKHAIL пишет: цитата: | Как можно управлять выводом лога ошибок программы? |
| Посмотрите в исходниках Харбора файл errsys.prg
|
|
|
|
| |
Пост N: 5326
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.10.15 11:33. Заголовок: MIKHAIL пишет: Как ..
MIKHAIL пишет: цитата: | Как можно управлять выводом лога ошибок программы? |
| Set( _SET_HBOUTLOG[, <cFileName>] ) -> <cOldFileName>
|
|
|
|
| |
Пост N: 111
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.10.15 12:23. Заголовок: Dima а у меня вообще..
Dima а у меня вообще при ошибке выполнения, файл лога не создается. Что нужно добавить в код?
|
|
|
|
| |
Пост N: 5327
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.10.15 13:57. Заголовок: MIKHAIL Проверил у ..
MIKHAIL Проверил у себя , таки да , не создается лог в случае падения. PS Можно вот так xhb_errorsys() где то в самом начале проги.
|
|
|
|
| |
Пост N: 112
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.10.15 19:06. Заголовок: Dima Так работает н..
Dima Так работает но имя лога не меняется.
|
|
|
|
| |
Пост N: 5328
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.10.15 19:15. Заголовок: MIKHAIL Пробуй XHB_..
MIKHAIL Пробуй XHB_ERRORLOG( [<cFileName>], [<lAppend>] ) -> { cOldName, lOldAppend }
|
|
|
|
| |
Пост N: 160
Зарегистрирован: 21.04.13
|
|
Отправлено: 27.10.15 19:27. Заголовок: hb_out.log - только Internal Errors
Насколько помню, в hb_out.log пишутся только серьезные внутренние ошибки, которые нельзя перехватить в ERRSYS.PRG. Можно взять к себе текст ERRORSYS() из ..\src\rtl\errsys.prg и модицировать у себя выводом в нужный файл-лог Можно даже взять ERRORSYS из Clipper
|
|
|
|
| |
Пост N: 113
Зарегистрирован: 05.10.06
|
|
Отправлено: 28.10.15 15:42. Заголовок: Как можно сделать ра..
Как можно сделать разбор XML файла? где можно список функций и описание почитать?
|
|
|
|
| |
Пост N: 5329
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.10.15 15:44. Заголовок: MIKHAIL Начни с htt..
|
|
|
|
| |
Пост N: 310
Зарегистрирован: 12.11.06
|
|
Отправлено: 30.10.15 20:31. Заголовок: MIKHAIL пишет: Как ..
MIKHAIL пишет: цитата: | Как можно сделать разбор XML файла? где можно список функций и описание почитать? |
| Мои соболезования... Самому пришлось с 20.09.15 с нуля изучать данную "тему", в связи с появлением ЕГАИС в розничной торговле - в теории, на примитивных примерах всё кажется понятным, а в более сложных задачах 1. По документации есть классы TXML*, которые позволяют парсить и собирать хмл файлы, к данным классам приведено множество примеров использования переменных и методов - это наверное АЗБУКА. На "импортных" форумах в основном "разжовывают" примеры к этим классам 2. Реальность. Мной в процессе освоения данной темы создана и развивается программа. При изучении тщательно описывал в тексте программы нюансы и "засады" данных классов для xHarbour. Ее (программы) исходные текста, примеры разбираемых и порождаемых хмл файлов выложены для первого релиза на "странице" программы: http://olegon.ru/showthread.php?t=23079 - можете использовать для освоения... съэкономите кучу времени
|
|
|
|
| |
Пост N: 118
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.11.15 15:17. Заголовок: Так и не смог понять..
Так и не смог понять откуда возникает ошибка Error ADSNTX/5068 Error 5068: There is no current record Она появляется только под Harbour +ADS (Local или Remote), при чем под Harbor+DBFNTX и Clipper+ADS все работает без проблемм... У кого есть какой то опыт на этот счет? Появляется в момент перемещения например dbseek() или dbgoto()... при чем не всегда... Может ADS + Harbour отслеживает выполнение set relations более строго чем для clipper ?
|
|
|
|
| |
Пост N: 162
Зарегистрирован: 21.04.13
|
|
Отправлено: 10.11.15 16:02. Заголовок: "Плохой" индекс ?
Похоже на поведение при индексе , который не соответствует таблице. Есть индексные выражения из связанных по relation областей ? Сделайте проверку индекса после свала.
|
|
|
|
| |
Пост N: 119
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.11.15 17:29. Заголовок: petr707 пишет: Похо..
petr707 пишет: цитата: | Похоже на поведение при индексе , который не соответствует таблице. Сделайте проверку индекса после свала. |
| Так дело в том что с одной базой работают приложение на Clipper и та же самая переведенная на Harbour. Так вот Clipper ведет себя нормально Причем тестил как на ADS7+Novell IPX так и на ADS10+Linux IP, везде одна борода... даже на LocalAds это происходит petr707 пишет: цитата: | Есть индексные выражения из связанных по relation областей ? |
| Да, есть, буду пробовать их отключать, но больно муторно выискивать где нужно будет править код....
|
|
|
|
| |
Пост N: 163
Зарегистрирован: 21.04.13
|
|
Отправлено: 10.11.15 17:46. Заголовок: Одновременная работа Clipper app и Harbour app ?
.. работают приложение на Clipper и та же самая переведенная на Harbour.. Одновременно ? Лучше не делать. Переправу надо перейти.
|
|
|
|
| |
Пост N: 120
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.11.15 17:56. Заголовок: petr707 пишет: Одно..
petr707 пишет: цитата: | Одновременно ? Лучше не делать. |
| Так и отдельно, без Clipper приложений тот же косяк...
|
|
|
|
| |
Пост N: 164
Зарегистрирован: 21.04.13
|
|
Отправлено: 10.11.15 21:48. Заголовок: Как найти глюк ?
Старый способ - контрольная группа - хоть в биологии хоть в космонавтике 1) Сделать тестовую среду как копию (реплику) основной БД 2) Провести полную начальную индексацию 3) использовать только новый софт 4) повторять все проводки как в рабочей базе со старым софтом 5) после первого свала - всем стоп 6) ну и изучайте по всем срезам состояние этого контрольного примера
|
|
|
|
| Администратор
|
Пост N: 3352
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.11.15 09:08. Заголовок: Ads имеет два клиент..
Ads имеет два клиента: старый клипперовский 16-разрядный, и Ace. Они работают не одинаково. Проблема может быть именно в ace, даже не в харборе.
|
|
|
|
| |
Пост N: 5343
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.15 15:04. Заголовок: вообще у меня была с..
вообще у меня была связка Clipper+ADS и Harbour+ADS обе проги юзали одну и ту же базу. версии ADS (ACE и для Clipper) были 5.5 и работало нормально
|
|
|
|
| |
Пост N: 121
Зарегистрирован: 05.10.06
|
|
Отправлено: 11.11.15 19:03. Заголовок: Скорее всего моя дог..
Скорее всего моя догадка была правильной, клиент под Харбор проверяет соответствие выполнения set relation, если передвинуть в связаной таблице на другую запись, будет эта ошибка. Убрал все relations пока полет нормальный...
|
|
|
|
| |
Пост N: 5344
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.15 22:21. Заголовок: MIKHAIL Сделай тест..
MIKHAIL Сделай тестовый не большой пример.
|
|
|
|
| |
Пост N: 122
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 11:21. Заголовок: Dima пишет: Сделай ..
Dima пишет: цитата: | Сделай тестовый не большой пример. |
| USE TABLE1 INDEX TABLE1 USE TABLE2 SET RELATIONS TO KOD INTO TABLE1 DBGOTO(10) далее если делать перемещение по table1 из текущей активной области, где значение индексного выражения не равно значению TABLE2->KOD, будет ошибка ADS 5068 т.е. например table1->(dbgoto(n)) table1->(dbseek(n))
|
|
|
|
| |
Пост N: 124
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 13:11. Заголовок: Как использовать фун..
Как использовать функцию AdsIsConnectionAlive() ? ADSHANDLE:=AdsConnect(cPath) ? AdsIsConnectionAlive(ADSHANDLE) // .F. ADSHANDLE:=AdsConnection(cPath) ? AdsIsConnectionAlive(ADSHANDLE) // .F. ADSHANDLE:=AdsConnect60(cPath) ? AdsIsConnectionAlive(ADSHANDLE) // .F. Что не так?
|
|
|
|
| |
Пост N: 5345
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 13:25. Заголовок: MIKHAIL пишет: ADSH..
MIKHAIL пишет: цитата: | ADSHANDLE:=AdsConnect(cPath) |
| Не верно ловишь хендл Лови его так ADSHANDLE:=AdsConnection() после AdsConnect(cPath) если он вернет TRUE
|
|
|
|
| |
Пост N: 125
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 14:31. Заголовок: Dima пишет: Лови ег..
Dima пишет: цитата: | Лови его так ADSHANDLE:=AdsConnection() после AdsConnect(cPath) если он вернет TRUE |
| Не получается: ? AdsConnect(cPath) // .T. ADSHANDLE:=AdsConnection() ? AdsIsConnectionAlive(ADSHANDLE) // .F. Чего то ей не хватает. Еще вопрос по AdsMgGetUserNames () Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях. С чем это может быть связано?
|
|
|
|
| |
Пост N: 5346
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 14:55. Заголовок: MIKHAIL пишет: ADSH..
MIKHAIL пишет: цитата: | ADSHANDLE:=AdsConnection() |
| что вернуло тут ? какой тип подключения (ADS_LOCAL_SERVER , ADS_REMOTE_SERVER, ADS_AIS_SERVER ) ? IPX/SPX , TCP/IP ?
|
|
|
|
| |
Пост N: 5347
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 15:02. Заголовок: MIKHAIL пишет: Еще ..
MIKHAIL пишет: цитата: | Еще вопрос по AdsMgGetUserNames () Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях. С чем это может быть связано? |
| Возможно отвалилась связь с ADS а коннект живет по умолчанию 120 сек. Или не совсем верно завершаешь программу. В конце вставь перед QUIT AdsDisconnect(ТВОЙ ХЕНДЛ) AdsApplicationExit()
|
|
|
|
| |
Пост N: 126
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 15:04. Заголовок: Dima пишет: что вер..
Dima пишет: цитата: | что вернуло тут ? какой тип подключения (ADS_LOCAL_SERVER , ADS_REMOTE_SERVER, ADS_AIS_SERVER ) ? IPX/SPX , TCP/IP ? |
| LINUX TCP/IP ADS_REMOTE_SERVER ? ADSHANDLE:=AdsConnection() // 3966024
|
|
|
|
| |
Пост N: 5348
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 15:06. Заголовок: MIKHAIL пишет: LINU..
MIKHAIL пишет: цитата: | LINUX TCP/IP ADS_REMOTE_SERVER |
| с этим зверем не работал с сервером вынь AdsIsConnectionAlive работает нормально попробуй в ADS.INI в секции [SETTINGS] прописать USE_TCP_IP=1
|
|
|
|
| |
Пост N: 689
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.11.15 16:42. Заголовок: MIKHAIL пишет: Чего..
MIKHAIL пишет: версия сервера какая ? HB_FUNC( ADSISCONNECTIONALIVE ) /* Determine if passed or default connection is still valid */ { #if ADS_LIB_VERSION >= 800 UNSIGNED16 bConnectionIsAlive = 0; AdsIsConnectionAlive( HB_ADS_PARCONNECTION( 1 ), &bConnectionIsAlive ); hb_retl( bConnectionIsAlive != 0 ); #else hb_retl( HB_FALSE ); #endif }
|
|
|
|
| |
Пост N: 5349
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 17:21. Заголовок: Haz пишет: версия с..
Haz пишет: Хороший вопрос
|
|
|
|
| |
Пост N: 127
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 17:27. Заголовок: Haz пишет: версия с..
|
|
|
|
| |
Пост N: 5350
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 18:03. Заголовок: MIKHAIL пишет: LINU..
MIKHAIL пишет: Это версия ADS под LINUX или версия LINUX ?
|
|
|
|
| |
Пост N: 128
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.11.15 18:19. Заголовок: Это версия ADS под L..
Это версия ADS под LINUX
|
|
|
|
| |
Пост N: 5352
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.15 18:22. Заголовок: MIKHAIL Можно попро..
|
|
|
|
| |
Пост N: 690
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.11.15 10:35. Заголовок: Dima пишет: LINUX 1..
MIKHAIL пишет: а клиентская часть ( DLL на компе пользователя ) тоже версии 10 ? там есть adsver.exe - проверь на всякий случай
|
|
|
|
| |
Пост N: 129
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.11.15 17:47. Заголовок: Haz пишет: а клиент..
Haz пишет: цитата: | а клиентская часть ( DLL на компе пользователя ) тоже версии 10 ? там есть adsver.exe - проверь на всякий случай |
| Эта утилита показывает версию клиентской DLL, ее можно просто в свойствах файла увидеть, версии совпадают 10.0.0.3 ADS 64 и Linux 64 разрядный
|
|
|
|
| |
Пост N: 691
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.11.15 18:00. Заголовок: Установи тестовый A..
Установи тестовый ADS Server под WIN , хотя бы на своем компе и проверь AdsIsConnectionAlive() там. у меня подключение такое ( сервер под win64 клиент под win32 ) adsConnect60( сDict, nServerType, cUser, cUserPass, 0, @hConnection ) AdsIsConnectionAlive(hConnection) дает .T.
|
|
|
|
| |
Пост N: 5353
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.11.15 18:07. Заголовок: Haz пишет: adsConne..
Haz пишет: цитата: | adsConnect60( сDict, nServerType, cUser, cUserPass, 0, @hConnection ) AdsIsConnectionAlive(hConnection) дает .T. |
| Не запутывай человека словарями . При обычном коннекте у меня тоже работает AdsIsConnectionAlive.
|
|
|
|
| |
Пост N: 130
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.11.15 18:11. Заголовок: А нужно какие значе..
А нужно какие значения прописывать для сDict, nServerType, cUser, cUserPass, hConnection ?
|
|
|
|
| |
Пост N: 692
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.11.15 18:13. Заголовок: Dima пишет: Не запу..
Dima пишет: я как пример привел, и в мыслях не было путать ))) MIKHAIL пишет: цитата: | версию клиентской DLL, ее можно просто в свойствах файла увидеть |
| возможно и так , не проверял. А по чеснаку она в текстовом виде в файле сразу после строки EsIAx!@# которую ADS использует как заголовок регистрационной информации.
|
|
|
|
| |
Пост N: 5354
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.11.15 18:14. Заголовок: MIKHAIL Ставь вот э..
MIKHAIL Ставь вот эту версию _http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=16&Product=25&Platform=10 (последнюю 10.x) Там столько багов устранено по сравнению 10.03 в том числе и с индексами.
|
|
|
|
| |
Пост N: 693
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.11.15 18:15. Заголовок: Haz пишет: А нужно ..
|
|
|
|
| |
Пост N: 131
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 11:31. Заголовок: Попробовал по разном..
Попробовал по разному, под WIN32XP и ServerR8 64 на ADS 10.10 и ADS 9.10 и Linux 64 ADS64 10.10, везде функция выдает .F. Причем соединение с сервером устанавливается даже по AdsIsServerLoaded(), поэтому у меня были множественные соединения из одной программы.
|
|
|
|
| |
Пост N: 5355
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 11:40. Заголовок: MIKHAIL Попробуй те..
MIKHAIL Попробуй тест (у меня работает) Proc main local adshandle:=0 AdsSetServerType(2) if AdsConnect("c:\") adshandle:=AdsConnection() ? AdsIsConnectionAlive(adshandle) endif return
|
|
|
|
| |
Пост N: 132
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 11:53. Заголовок: Dima пишет: if A..
Dima пишет: цитата: | if AdsConnect("c:\") adshandle:=AdsConnection() ? AdsIsConnectionAlive(adshandle) endif |
| у меня все равно выдает .F. Может какие то установки или настройки ADS нужны?
|
|
|
|
| |
Пост N: 5356
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 12:35. Заголовок: MIKHAIL а если этот..
MIKHAIL а если этот тест запустить непросредственно на винсервере r8 64 , где живет ADS.
|
|
|
|
| |
Пост N: 694
Зарегистрирован: 20.02.11
|
|
Отправлено: 14.11.15 12:40. Заголовок: MIKHAIL пишет: Попр..
MIKHAIL пишет: цитата: | Попробовал по разному, под WIN32XP и ServerR8 64 на ADS 10.10 и ADS 9.10 и Linux 64 ADS64 10.10, везде функция выдает .F. |
| 1 Поставь ADS Server на СВОЙ комп ( на котором запускаешь тестовую программу от Димы ) 2 убедись что на компе в системной папке винды , в путях поиска и в папке с тестом не было старых версий DLL от ADS потом проверь тест который дал Дима
|
|
|
|
| |
Пост N: 5357
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 13:07. Заголовок: MIKHAIL Что выдает ..
MIKHAIL Что выдает ? AdsVersion(3) у меня Advantage 32-bit Client Engine for Windows, v10.1
|
|
|
|
| |
Пост N: 133
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 13:50. Заголовок: Dima пишет: ? AdsVe..
Dima пишет: Advantage 32-bit Client Engine for Windows, v10.10 Тестил на своем и на сервере, везде одно и тоже
|
|
|
|
| |
Пост N: 5358
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 14:25. Заголовок: MIKHAIL Да уж , пол..
MIKHAIL Да уж , полтергейст какой то )) А RddAds переcобирал c новым ACE ? ps может файер что то блочит........
|
|
|
|
| |
Пост N: 134
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 14:55. Заголовок: Dima пишет: А RddAd..
Dima пишет: цитата: | А RddAds переcобирал c новым ACE ? |
| Я пока не очень разбираюсь в этом, подскажите как это сделать пошагово?
|
|
|
|
| |
Пост N: 5359
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 14:58. Заголовок: MIKHAIL пишет: Я по..
MIKHAIL пишет: цитата: | Я пока не очень разбираюсь в этом, подскажите как это сделать пошагово? |
| компилятор BCC или MINGW ? сырцы Harbourа есть ?
|
|
|
|
| |
Пост N: 135
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 15:01. Заголовок: BCC, сырцы есть..
BCC, сырцы есть
|
|
|
|
| |
Пост N: 5360
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 15:07. Заголовок: MIKHAIL Следующий б..
MIKHAIL Следующий батник ложим в папку с сырцами RDDADS У меня они тут C:\svn\harbour-trunk\harbour\contrib\rddads\ Пути поправь на свои set PATH=C:\bcc55\bin set HB_INSTALL_PREFIX=c:\hb32 set HB_DIR_ADS=C:\ads.10.10\acesdk set HB_WITH_ADS=C:\ads.10.10\acesdk c:\hb32\bin\hbmk2 rddads.hbp Стартуем батник , после его работы в этой папке видим 2 новых файла rddads.lib и ace32.lib Копируем их куда нужно (папка LIB Харбора)
|
|
|
|
| |
Пост N: 695
Зарегистрирован: 20.02.11
|
|
Отправлено: 14.11.15 15:31. Заголовок: MIKHAIL Dima пишет..
MIKHAIL Dima пишет: цитата: | Следующий батник ложим в папку с сырцами RDDADS У меня они тут C:\svn\harbour-trunk\harbour\contrib\rddads\ |
| а взять их можно тут http://github.com/harbour/core/archive/master.zip ЗЫ в принципе заведомо рабочие библиотеки можно взять с этого форума , скачав здесь MiniGui и установив. там в поставке идут эти библиотеки
|
|
|
|
| |
Пост N: 136
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 15:57. Заголовок: Собрал, все заработа..
Собрал, все заработало! Еще мне не понятно отличие функций AdsMg*** Мне нужно получить список пользователей, а при AdsConnect() функция AdsMgGetUserName() не работает, приходится использовать AdsMgConnect(), но при этом получается несколько соединений к ADS от одного пользователя. И как узнать свое собственное подключение в списке ?
|
|
|
|
| |
Пост N: 5361
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 16:34. Заголовок: MIKHAIL пишет: AdsM..
MIKHAIL пишет: Для всех этих функций нужен AdsMgConnect()
|
|
|
|
| |
Пост N: 5362
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 16:40. Заголовок: MIKHAIL пишет: И к..
MIKHAIL пишет: цитата: | И как узнать свое собственное подключение в списке ? |
| По имени компа AdsMgConnect() if ADSMGGETHANDLE()>0 aRay := AdsMgGetUserNames() FOR j=1 TO Len( aRay ) if aray[j][1]==netname(1) // netname(1) лучше заюзать где то в начале проги и запомнить результат ? "Это я :)" exit endif NEXT endif AdsMgDisconnect() При одиночном коннекте AdsConnection + AdsMgConnect Массив выглядит примерно так {{"MYCOMP", 0, "IPC Connection 2", "", "dima", "0.0.0.0"}, {"MYCOMP", 0, "IPC Connection 3", "", "dima", "0.0.0.0"}}
|
|
|
|
| |
Пост N: 137
Зарегистрирован: 05.10.06
|
|
Отправлено: 14.11.15 17:24. Заголовок: Спасибо всем огромно..
Спасибо всем огромное!!! Буду дальше разбираться
|
|
|
|
| |
Пост N: 5363
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.15 20:46. Заголовок: MIKHAIL На заметку ..
|
|
|
|
| |
Пост N: 138
Зарегистрирован: 05.10.06
|
|
Отправлено: 19.11.15 18:53. Заголовок: Иногда (редко) подви..
Иногда (редко) подвисает программа, не реагирует ни на что. Хотя иногда может и отвиснуть. Как отследить в чем проблемма? Код работал на Clipper много лет.
|
|
|
|
| |
Пост N: 5369
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.11.15 19:05. Заголовок: MIKHAIL По сети раб..
MIKHAIL По сети работает или локально ? Виснет в разных местах ? Какая ось на станции ?
|
|
|
|
| |
Пост N: 139
Зарегистрирован: 05.10.06
|
|
Отправлено: 20.11.15 15:12. Заголовок: Dima причина оказала..
Dima причина оказалась в железе, USB порт клавиатуры видно подглючивал.
|
|
|
|
| |
Пост N: 140
Зарегистрирован: 05.10.06
|
|
Отправлено: 20.11.15 18:20. Заголовок: Не полностью выдает ..
Не полностью выдает детализацию ошибки, а именно номер строки ошибки. Выводит только номер строки функции где произошла ошибка. Как подправить?
|
|
|
|
| |
Пост N: 5370
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.11.15 18:40. Заголовок: MIKHAIL пишет: Не п..
MIKHAIL пишет: цитата: | Не полностью выдает детализацию ошибки |
| Покажи на простом примере , что имеется в виду.
|
|
|
|
| |
Пост N: 141
Зарегистрирован: 05.10.06
|
|
Отправлено: 20.11.15 21:43. Заголовок: Dima пишет: Покажи ..
Dima пишет: цитата: | Покажи на простом примере , что имеется в виду. |
| цитата: | -------------------- Internal Error Handling Information --------------------- Subsystem Call ....: BASE System Code .......: 1133 Default Status ....: .F. Description .......: Bound error Operation .........: array assign Arguments .........: [ 1] = Type: N Val: 14 Involved File .....: Dos Error Code ....: 0 Trace Through: ---------------- LOGERROR : 0 in Module: xhb\xhberr.prg MAGAZIN : 432 in Module: magazin.prg |
| Строка 432 это ссылка на функцию, в которой тоже несколько тысяч строк кода, где собственно и происходит ошибка.
|
|
|
|
| |
Пост N: 5371
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.11.15 22:23. Заголовок: MIKHAIL Да вроде вс..
MIKHAIL Да вроде все красиво. Proc main Test() return ************* Func Test() local a:={} a[1]:=1 return nil Вывалило у меня так Error BASE/1133 Bound error: array assign Called from TEST(7) Called from MAIN(2)
|
|
|
|
| постоянный участник
|
Пост N: 1176
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.11.15 22:28. Заголовок: MIKHAIL, у тебя - xH..
MIKHAIL, у тебя - xHarbour. Видимо, собран с опцией "suppress line numbers". Вот отсюда нули в модулях самого xHarbour
|
|
|
|
| |
Пост N: 142
Зарегистрирован: 05.10.06
|
|
Отправлено: 21.11.15 12:37. Заголовок: Dima Так дело в том ..
Dima Так дело в том что иногда отображает номер строки ошибки, а иногда нет. т.е. некоторые ошибки такие как: i:=1 len(i) выведет правильно номер строки, а такую: i:=1 ? i[1] не выводит.
|
|
|
|
| |
Пост N: 479
Зарегистрирован: 08.07.06
|
|
Отправлено: 23.11.15 23:52. Заголовок: Судя по выкладке, ис..
Судя по выкладке, используется нестандартный обработчик ошибок. Попробуйте на время тестирования заменить xhb/xhberr.prg на простой и дубовый errorsys.prg из дистрибутива и посмотреть на его результаты.
|
|
|
|
| |
Пост N: 143
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.12.15 15:32. Заголовок: Sergy пишет: на про..
Sergy пишет: цитата: | на простой и дубовый errorsys.prg из дистрибутива |
| Я чего то не могу найти его в дистрибутиве. Может по другому называется? Пробовал от Clipper прикомпоновать, но он не замещает почему то встроенный. Что для этого нужно сделать ? Мне по сути нужно лог ошибок сохранять.
|
|
|
|
| |
Пост N: 5385
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.15 15:35. Заголовок: MIKHAIL пишет: Може..
MIKHAIL пишет: цитата: | Может по другому называется? |
| ERRSYS.PRG теперь
|
|
|
|
| |
Пост N: 144
Зарегистрирован: 05.10.06
|
|
Отправлено: 05.12.15 17:01. Заголовок: Где можно взять или ..
Где можно взять или приобрести Fastreport ?
|
|
|
|
| постоянный участник
|
Пост N: 1178
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.12.15 17:13. Заголовок: MIKHAIL пишет: Где ..
MIKHAIL пишет: цитата: | Где можно взять или приобрести Fastreport ? |
| FastReport сделал Сергей Спирин, который несколько лет назад умер. Так что, видимо, купить уже негде.
|
|
|
|
| |
Пост N: 5393
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.15 17:17. Заголовок: PSP пишет: Так что,..
PSP пишет: цитата: | Так что, видимо, купить уже негде |
| У нас на форуме еще есть добрые джентльмены , которые думаю поделятся бесплатно.
|
|
|
|
| |
Пост N: 165
Зарегистрирован: 21.04.13
|
|
Отправлено: 05.12.15 17:51. Заголовок: Fastreport
Fastreport , строго говоря, это несколько другое. Сергей предоставлял FRH библиотеку-обертку для Harbour для работы с FastReport VCL Сам FastReport убежал вперед. Были еще попытки сделать Fastreport for Harbour , например click here FastReport for [x]Harbour. Libraries to manage FastReport from Harbour and xHarbour and on any GUI framework or even in console mode. FastReport vesion 4.15
|
|
|
|
| |
Пост N: 145
Зарегистрирован: 05.10.06
|
|
Отправлено: 25.02.16 11:30. Заголовок: Какими средствами мо..
Какими средствами можно перехватывать все нажатия клавиш и экранного вывода в консольном приложении?
|
|
|
|
| |
Пост N: 5487
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.02.16 11:40. Заголовок: MIKHAIL пишет: Каки..
MIKHAIL пишет: цитата: | Какими средствами можно перехватывать все нажатия клавиш |
| hb_gtInfo( HB_GTI_INKEYFILTER.....
|
|
|
|
| |
Пост N: 149
Зарегистрирован: 05.10.06
|
|
Отправлено: 25.03.16 11:39. Заголовок: Использую библиотеку..
Использую библиотеку FreeImage, все работало, добавил некоторые функции, Харбор их не видит: fi_GetFIFFromFilename и fi_FIFSupportsReading что нужно сделать ?
|
|
|
|
| |
Пост N: 159
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.08.16 17:13. Заголовок: Можно ли в консольно..
Можно ли в консольной версии расширить палитру стандартных цветов?
|
|
|
|
| |
Пост N: 5970
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.08.16 17:27. Заголовок: MIKHAIL Думаю нет (..
MIKHAIL Думаю нет (ИМХО)
|
|
|
|
| |
Пост N: 161
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.10.16 12:31. Заголовок: Как можно подключить..
Как можно подключить сторонюю библиотеку DLL ? Пробовал hb_LibLoad("payCEB.dll") Она возвращает пустой результат, т.е. не загружается. В описании библиотеки написано - Стандарт вызова функций: stdcall
|
|
|
|
| |
Пост N: 193
Зарегистрирован: 19.05.05
|
|
Отправлено: 18.10.16 13:04. Заголовок: Как то пробовал напр..
Как то пробовал напрямую включать dll в HBMK и все нормально собралось и отработало.
|
|
|
|
| |
Пост N: 6054
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.10.16 13:33. Заголовок: MIKHAIL hb_DynCall..
MIKHAIL hb_DynCall Например #include "hbdyn.ch" FUNCTION MAIN(cSource, cDest) hb_DynCall( { "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL }, cSource, cDest, 0 ) RETURN NIL
|
|
|
|
| |
Пост N: 162
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.10.16 18:16. Заголовок: Dima пишет: hb_DynC..
Dima пишет: цитата: | hb_DynCall( { "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL }, cSource, cDest, 0 ) |
| А эта функция возвращает ответ вызываемой функции? И как обрабатывать ошибки?
|
|
|
|
| |
Пост N: 6057
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.10.16 21:30. Заголовок: Да что то возвращает..
|
|
|
|
| |
Пост N: 2
Зарегистрирован: 01.04.17
|
|
Отправлено: 01.04.17 21:04. Заголовок: Занялся переносом на..
Занялся переносом на консольный xHarbour средних размеров проекта( ~ 800к исходников). Не находит 11 функций из состава СT NNETLOGGED NNETCAPACT NNETSETQ NNETCAPSSF NNETCAPBEG SPOOLACTIV SPOOLADD PRINTINIT BIOSDATE STACKFREE FILECHECK На что можно заменить или где взять более полную библиотеку ? Поиск по либам как советовали в теме http://clipper.borda.ru/?1-4-0-00000255-000-0-0-1334307608 не приносит результатов за исключением функции STACKFREE которая находитмя в vm.lib vm.lib у меня и до поиков линкновалась Версия xHarbour xHarbour Binaries 1.2.3 Rev. 10193 for BCC 5.5.1
|
|
|
|
| постоянный участник
|
Пост N: 1297
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.04.17 21:46. Заголовок: Mitek пишет: Занялс..
Mitek пишет: цитата: | Занялся переносом на консольный xHarbour |
| А почему не Harbour?
|
|
|
|
| |
Пост N: 3
Зарегистрирован: 01.04.17
|
|
Отправлено: 01.04.17 22:20. Заголовок: PSP пишет: А почему..
PSP пишет: А собственно просто уже лет этак много xHarbour пользую но до сего древнейшего проекта все руки не доходили. Но собственно сути это не меняет... на harbour без X в оригинальных поставках я этих функций тоже не вижу... например в harbour-3.0.0-win Пока в голову только идет переопределить SPOOLACTIV - #xtranslate SPOOLACTIV()=> .F. SPOOLADD - #xtranslate SPOOLADD()=> .F. BIOSDATE почитать из реестра - #xtranslate BIOSDATE()=>CTOD ( GetRegistry(, 'HARDWARE\Description\System\BIOS', 'BIOSReleaseDate' ) ) ну или для Harbour - #xtranslate BIOSDATE()=> CTOD( win_regRead( "HKLM\HARDWARE\Description\System\BIOS\BIOSReleaseDate" ) ) STACKFREE - #xtranslate STACKFREE()=> 1000000 FILECHECK через md5 - #xtranslate FILECHECK(<cFileName>) => HB_MD5FILE(<cFileName>) Что делать с остальными пока не думал ... Просто типа размечтался что может кто подскажет где уже опробованные качнуть
|
|
|
|
| постоянный участник
|
Пост N: 1298
Зарегистрирован: 27.01.07
|
|
Отправлено: 02.04.17 09:37. Заголовок: В harbour есть библа..
В harbour есть библа hbct. Посмотрите.
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 01.04.17
|
|
Отправлено: 02.04.17 21:45. Заголовок: PSP Да смотрел я на ..
PSP Да смотрел я на эту библу еще пару лет назад и что . Нет там этих функций собственно так же как и в ее аналоге от xHarbour - CT.lib
|
|
|
|
| постоянный участник
|
Пост N: 1299
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.04.17 12:43. Заголовок: А так уж эти функции..
А так уж эти функции все нужны? К примеру, NNet* предназначены для работы с Novell Netware. У вас используется сервер Novell Netware? Функция SPOOLACTIV - что-то связанное с печатью в DOS. Надо? Ну и т.д. Придется вам слегка код поправить.
|
|
|
|
| |
Пост N: 164
Зарегистрирован: 05.10.06
|
|
Отправлено: 29.04.17 19:39. Заголовок: совместимость индексов
Столкнулся с проблеммой. Перевел проект с Clipper 5.3 на Harbor 3.2 сервер NW + ADS7, пока отладка идет одновременно использую старую и новую версию программы. Обнаружил что индексы (ntx) по строке не корректно работают или не совместимы. Т.е. при создании индексов программой Clipper они не корректно отображаются в программе Harbora и с точностью наоборот. Странное дело, ведь индексы строит ADS. Длинна ключа в обеих случаях одинаковая. при этом DBFNTX драйвер работает корректно для обеих версий. Есть у кого мысли?
|
|
|
|
| |
Пост N: 6399
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.04.17 15:39. Заголовок: MIKHAIL У меня была..
MIKHAIL У меня была похожая связка под ADS 5.xx , индексы IDX , работало нормально. PS Изначально были какие то глюки (уже не помню подробности) , Павел тогда помог и что то переделал в RDDADS Harbour. Dima пишет: цитата: | (уже не помню подробности) |
| Вроде связанное с кирилицей и 866 кодировкой
|
|
|
|
| |
Пост N: 165
Зарегистрирован: 05.10.06
|
|
Отправлено: 03.05.17 12:41. Заголовок: сборка
А есть какая то опция в компиляторе, что бы не весь проект заново собирался, а только измененные файлы? типа как в блинкере была инкрементальная сборка...
|
|
|
|
| постоянный участник
|
Пост N: 1306
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.05.17 12:45. Заголовок: MIKHAIL пишет: А ес..
MIKHAIL пишет: цитата: | А есть какая то опция в компиляторе, что бы не весь проект заново собирался, а только измененные файлы? типа как в блинкере была инкрементальная сборка... |
| hbmk2 имеет опцию -inc
|
|
|
|
| |
Пост N: 166
Зарегистрирован: 05.10.06
|
|
Отправлено: 04.05.17 12:39. Заголовок: Есть файл базы данны..
Есть файл базы данных товаров, порядка 100тыс. Как можно отследить что были изменены в ней определенные поля без полного сканирования ? Пробовал использовать время создания файла на диске, но видимо из за кэша, оно обновляется не сразу, если речь не идет о добавлении записей, dbcommit() не помагает.
|
|
|
|
| |
Пост N: 6401
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.05.17 13:08. Заголовок: MIKHAIL можно ввест..
MIKHAIL можно ввести еще одно поле TIMESTAMP и в случае изменения нужно поля писать в новое поле свежее значение
|
|
|
|
| постоянный участник
|
Пост N: 5364
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.05.17 14:09. Заголовок: Dima пишет: можно в..
Dima пишет: цитата: | можно ввести еще одно поле TIMESTAMP и в случае изменения нужно поля писать в новое поле свежее значение |
| Поле типа TIMESTAMP AADD( aDbf , {"TS" ,"=", 8, 0 } ) // RDD-TimeStamp дата+время+миллисекунды автоматом само меняет значение при изменение любого поля записи. Наверное лучше использовать другой тип поля вот этот: AADD( aDbf , {"IM" ,"@", 8, 0 } ) // TimeStamp, заполняешь сам и заполнять при изменении нужных тебе полей самостоятельно.
|
|
|
|
| |
Пост N: 167
Зарегистрирован: 05.10.06
|
|
Отправлено: 04.05.17 14:40. Заголовок: Andrey пишет: автом..
Andrey пишет: цитата: | автоматом само меняет значение при изменение любого поля записи. |
| это очень хороший вариант, если под NTX оно работает, проверю, спасибо!
|
|
|
|
| |
Пост N: 168
Зарегистрирован: 05.10.06
|
|
Отправлено: 08.05.17 08:16. Заголовок: Потребовалось пересо..
Потребовалось пересобрать DBU, у меня почему то нет патча для него DBU53.RTP, где его можно взять?
|
|
|
|
| постоянный участник
|
Пост N: 1456
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.05.17 09:06. Заголовок: Скачать архив См. e..
|
|
|
|
| постоянный участник
|
Пост N: 5382
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.05.17 20:00. Заголовок: MIKHAIL пишет: это ..
MIKHAIL пишет: цитата: | это очень хороший вариант, если под NTX оно работает, проверю, спасибо! |
| Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер !
|
|
|
|
| |
Пост N: 533
Зарегистрирован: 08.07.06
|
|
Отправлено: 10.05.17 00:26. Заголовок: Andrey пишет: Скор..
Andrey пишет: цитата: | Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер ! |
| C точки зрения собственно DBF разницы между NTX и CDX нет никакой. Таблица вообще может быть одна, без соотв. индексного файла. Поэтому "специфические" типы данных ("^", "@", "+", "=", "I:+" и тп) работают без проблем. Проверено. И в целом, Viktor (или Przemek ) писал, что NTX/CDX - изнутри - одно и то-же. NTX занимает больше места на диске, но меньше в памяти. И наоборот - за счет того, что в ветвях дерева CDX используется компрессия, соотв. требуется чуть больше RAM и тактов процессора для декомпрессии сжатых данных.
|
|
|
|
| |
Пост N: 169
Зарегистрирован: 05.10.06
|
|
Отправлено: 11.05.17 11:08. Заголовок: Петр пишет: См. ext..
Петр пишет: нету там DBU53.RTP Скрытый текст D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===>
| Andrey пишет: цитата: | Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер ! |
| работает DBFNX под Харбором, не работает под Clipper и под ADSNTX
|
|
|
|
| постоянный участник
|
Пост N: 1459
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.05.17 12:34. Заголовок: MIKHAIL пишет: нету..
MIKHAIL пишет: Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется).
|
|
|
|
| |
Пост N: 170
Зарегистрирован: 05.10.06
|
|
Отправлено: 11.05.17 13:20. Заголовок: Петр пишет: Вот и я..
Петр пишет: цитата: | Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется). |
| Так как пропатчить файлы? Без патча у меня не собирается
|
|
|
|
| постоянный участник
|
Пост N: 1460
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.05.17 13:55. Заголовок: Там описано (readme...
Там описано (readme.txt) Gnu Path (binaries) найдете здесь Затем выполните команду patch -lNi dbu53.dif и дальше hbmk2 dbu.hbp Все.
|
|
|
|
| |
Пост N: 171
Зарегистрирован: 05.10.06
|
|
Отправлено: 15.05.17 15:50. Заголовок: Петр пишет: Затем в..
Петр пишет: цитата: | Затем выполните команду patch -lNi dbu53.dif и дальше hbmk2 dbu.hbp |
| То ли я не понимаю вас, то ли вы не внимательно прочитали мой пост от 11.05 Я делаю по инструкции: D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===>
|
|
|
|
| постоянный участник
|
Пост N: 1467
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.05.17 20:54. Заголовок: MIKHAIL пишет: Я де..
MIKHAIL пишет: цитата: | Я делаю по инструкции: D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===> |
| Согласно инструкции 3 шаг выглядит так цитата: | 3.) Apply supplied patch to the source using GNU Patch |
| GNU Patch, а не PATCH от (C) Copyright Pocket Soft
|
|
|
|
| |
Пост N: 172
Зарегистрирован: 05.10.06
|
|
Отправлено: 22.05.17 16:31. Заголовок: Как можно установить..
Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении, а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены.
|
|
|
|
| постоянный участник
|
Пост N: 1475
Зарегистрирован: 09.10.06
|
|
Отправлено: 22.05.17 22:47. Заголовок: MIKHAIL пишет: Как..
MIKHAIL пишет: цитата: | Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? |
| В Harbour, как и в Clipper, стандартные обработчики не предусматривают ограничения времени. цитата: | Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении |
| Проводите обновление при запуске программы или выходе из нее; реализуйте модуль обновления в виде отдельного приложения, реализуйте модуль обновления в виде отдельного потока - это все организационные мероприятия, выберите желаемую модель (f.e. обновление Opera, работа ccleaner с кэшем при запущенном браузере и т.п.), внесите изменения в ТЗ, утвердите у руководства/заказчика, реализуйте, внесите изменения в инструкцию пользователя и все будет Ок. MIKHAIL пишет: цитата: | а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены. |
| само собой и такое бывает. Мой любимый вопрос - и что? P.S. и что? уточняю, каким образом реализация подобной функциональности зависит от того Clipper или Harbour используется?
|
|
|
|
| |
Пост N: 543
Зарегистрирован: 08.07.06
|
|
Отправлено: 22.05.17 23:59. Заголовок: MIKHAIL пишет: Как ..
MIKHAIL пишет: цитата: | Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении, а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены. |
| Есть несколько вариантов: 1) Функция KeySec([<nKeyValue>,<nTime>, [<nCounter>], [<lMode>]]) → lActivated) - засовывает в буфер клавиатуры нужный код по истечении определенного времени. Например, K_ESC. Останется в программе организовать грамотную обработку, чтобы не задавала лишних вопросов юзеру. 2) hb_idleAdd( <bAction> ) → nHandle. Можно добавить любой блок кода, который будет вызван в ближайших циклах IdleState (например, ожидание ввода с клавиатуры). 3) ft_OnTick( bCode, nInterval ) - выполняет блок кода каждый указанный интервал времени. 4) Можно использовать многопоточность. Для этого нужно собрать проограмму с ключом -mt и предусмотреть соотв. обработку.
|
|
|
|
| |
Пост N: 198
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.12.18 16:53. Заголовок: При объявлении перем..
При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ?
|
|
|
|
| постоянный участник
|
Пост N: 1489
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.18 17:19. Заголовок: MIKHAIL пишет: При ..
MIKHAIL пишет: цитата: | При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ? |
| PUBLIC
|
|
|
|
| |
Пост N: 199
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.12.18 19:41. Заголовок: PSP пишет: PUBLIC ..
PSP пишет: т.е. не реализовано GLOBAL ?
|
|
|
|
| постоянный участник
|
Пост N: 1490
Зарегистрирован: 27.01.07
|
|
Отправлено: 11.12.18 06:13. Заголовок: А где было реализова..
А где было реализовано GLOBAL? В Клиппере не было.
|
|
|
|
| Администратор
|
Пост N: 3816
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.12.18 07:53. Заголовок: Есть в xHarbour. Это..
Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет.
|
|
|
|
| постоянный участник
|
Пост N: 1491
Зарегистрирован: 27.01.07
|
|
Отправлено: 11.12.18 09:30. Заголовок: Pasha пишет: Есть в..
Pasha пишет: цитата: | Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет. |
| Понятно.
|
|
|
|
| |
Пост N: 54
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.03.19 00:33. Заголовок: Перевожу на консольн..
Перевожу на консольный Harbour большое приложение из Clipper 5.2. В связи с этим пока 2 вопроса 1 Посоветуйте отладчик. Какой лучше? 2 В приложении на Clipper было реализовано что-то типа MsgBox (с различным количеством кнопок). Реализовано было через создание объектов для отображения кнопок с использованием малодокументированных функций Clipper. При запуске скомпилированного приложения выбивает ошибку. Подозреваю, что исполнение пошло по той ветке, которая и под клиппером не использовалась и не была отлажена. Не сильно хочется копаться в старом коде. Есть ли готовое решение аля MsgMox() для консольного варианта Harbour?
|
|
|
|
| |
Пост N: 55
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.03.19 01:15. Заголовок: и чтобы 2 раза не вс..
и чтобы 2 раза не вставать. Как обстоит дело с IDE для харбор? В версии 3 он был, а в версии 3.2 я его не нашел. Вопрос: 1 IDE для 3.2 существует или можно настроить и использовать тот, который шел с 3.0 2 И в качестве оценки перспектив дальнейшего развития. Насколько трудоемок процесс перевода консольной версии приложения под GUI. Насколько я понял, есть несколько вариантов GUI. Какой вариант перспективнее с точки зрения поддержки со стороны разработчиков.
|
|
|
|
| |
Пост N: 82
Зарегистрирован: 17.10.05
|
|
Отправлено: 24.03.19 01:38. Заголовок: alexmar пишет: 2 В ..
alexmar пишет: цитата: | 2 В приложении на Clipper было реализовано что-то типа MsgBox |
| ALERT ALERT( <xMessage>, [<aOptions>], [<cColorPairs>], [<nDelay>] ) --> nChoice or NIL Было в Клиппере, есть и в Харборе.
|
|
|
|
| |
Пост N: 56
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.03.19 03:40. Заголовок: Спасибо, :sm36: со..
Спасибо, совсем вылетело из головы. Очень редко пользовался.
|
|
|
|
| постоянный участник
|
Пост N: 6205
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.03.19 16:45. Заголовок: alexmar пишет: Наск..
alexmar пишет: цитата: | Насколько трудоемок процесс перевода консольной версии приложения под GUI. Насколько я понял, есть несколько вариантов GUI. Какой вариант перспективнее с точки зрения поддержки со стороны разработчиков. |
| Смотря что переводить... Т.е. какая консольная задача и какой нужен перевод. Я свою большую систему перевел за 4 года на МиниГуи. Правда особо не торопился, да и времени мало было на эту работу. Процесс очень трудоёмкий, нужно заново учиться под работу/понятия Винды и привыкать к новому стилю программирования. Зато сейчас у меня в проге есть работа с базами Dbf, LetoDB и PostgreSQL. Поддержка для МиниГуи на форуме в соседней ветке. Не забываем материально поддерживать Григория за его работу !!!
|
|
|
|
| постоянный участник
|
Пост N: 818
Зарегистрирован: 13.10.05
|
|
Отправлено: 24.03.19 17:11. Заголовок: Добавлю. Прежде пере..
Добавлю. Прежде перестроить мышление. Алгоритмы обработки можно , в основном, использовать старые.Но источники данных если это формы , то все по-новому. Есть ещё целый ряд платных и бесплатных GUI. Я остановил свой выбор на МиниГуи - в нем есть дизайнер форм, наброс интерфейса форм,делаю в нем.
|
|
|
|
| |
Пост N: 57
Зарегистрирован: 25.07.06
|
|
Отправлено: 25.03.19 01:44. Заголовок: Спасибо за ответы. Е..
Спасибо за ответы. Еще пару общих вопросов. Сколько по вашим оценкам народу юзает Харбор, в мире и на просторах необъятной? Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером? ps У меня были раньше попытки перетащить наработки с Клиппера. Пробовал Fivewin и CAVO. Но не было серьезных причин и соответственно стимулов. Все прекрасно работало, начиная с DOS и кончая Win10. Но всему приходит конец. Началось 64х разрядная эра. Клиенты покупают новые машины, а там уже стоит 64разрядная ось. И как-то некузяво заставлять их переходить на что-то другое или ставить что-то типа VMPayer. Поэтому воленс-неволенс я здесь.
|
|
|
|
| Администратор
|
Пост N: 3831
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.03.19 08:03. Заголовок: alexmar пишет: Ну и..
alexmar пишет: цитата: | Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером? |
| Харбору в этом году исполняется 20 лет. Как никак возраст. Столько не живут. Поскольку это opensource проект, с ним в принципе не может случиться то же, что с клиппером. Никуда эта гора кода не денется. Если найдутся разработчики, которым интересно двигать его дальше - будет развиваться. Не найдутся - будет находиться в том же состоянии, плюс мелкие улучшения. Но в любом случае с opensource продуктом работать куда приятнее, всегда можно сделать что-то под себя.
|
|
|
|
| moderator
|
Пост N: 1170
Зарегистрирован: 06.07.06
|
|
Отправлено: 25.03.19 13:34. Заголовок: alexmar пишет: Что ..
alexmar пишет: цитата: | Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером? |
| Как написал уже Павел, разница в том, что Harbour - проект с открытыми исходниками - т.е., в отличие от Клиппера, всегда есть возможность его развивать. Конечно, может возникнуть ситуация, когда не окажется заинтересованных программистов достаточной квалификации, чтобы сделать какие-либо крупные изменения - адаптировать его для другой ОС, например. Более того, уверен, что когда-нибудь это случится. Но подобное почти наверняка случится и с любым другим языком, кроме, может быть, С. И, даже, если вы решите перейти на С, вам придется использовать разнообразные готовые сторонние библитеки - для работы с конкретной БД, например. Но срок жизни любой библиотеки тоже ограничен сроком интереса к ней ее разработчиков. Как бывало не раз с любителями активно использовать сторонние компоненты для Delphi: часто при переходе на новую версию Delphi выясняется, что тот или иной компонент сторонний компонент больше не работает, а модернизировать его некому, и если он выполняет важные функции, то у вас проблемы. Так что не беспокойтесь, все там будут). Но расширять кругозор и быть готовым к переменам надо всегда.
|
|
|
|
| |
Пост N: 58
Зарегистрирован: 25.07.06
|
|
Отправлено: 26.03.19 01:56. Заголовок: спасибо, ребята всем..
спасибо, ребята всем за разъяснение ситуации. Сегодня удалось запустить свой проект, перекомпилированный в Харборе. Приятно удивила скорость. Осталось выловить все баги несовместимости, которые конечно повылазят. Первое, что увидел это то, что Харбор переиндексировал индексные файлы, оставшиеся от клиппера (использую ntx или idx) Возникли вопросы 1 Индексы несовместимы с клипперовскими? 2 Клиппер и харбор могут юзать одни и те же индексы? Раздельно или совместно. 3 Вопрос по поводу 866 страницы в исходниках. В программе все отображается нормально, а вот кирилические символы в исходниках под дебагером - кракозябры. Есть ли какое-то решение вопроса?
|
|
|
|
| |
Пост N: 385
Зарегистрирован: 12.11.06
|
|
Отправлено: 26.03.19 08:26. Заголовок: 1 Не совместимы, 2 н..
1 Не совместимы, 2 не могут
|
|
|
|
| Администратор
|
Пост N: 3832
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.03.19 08:37. Заголовок: 3. Дебаггер - это та..
3. Дебаггер - это такое же выполнение харбор-кода, как и основной программы. Дебаггер узнает о cp866 только после отработки hb_CdpSelect Возможно, еще надо выдать команду: hb_SetTermCP( "RU866" )
|
|
|
|
| |
Пост N: 215
Зарегистрирован: 19.05.05
|
|
Отправлено: 26.03.19 09:41. Заголовок: 1) О несовместимости..
1) О несовместимости. У нас некоторые базы индексируются DBU и далее с ними работают программы на HARBOUR в режиме корректировки после этого с этими же базами в некоторых случаях рабjтают с DBU . Нареканий вроде не было. Индексы NTX.
|
|
|
|
| постоянный участник
|
Пост N: 352
Зарегистрирован: 29.05.10
|
|
Отправлено: 26.03.19 11:24. Заголовок: alexmar пишет: Ну и..
alexmar пишет: цитата: | Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор |
| Да практически никаких. Харбор есть, а перспектив нет. Очень мало ,кто пишет. alkresin пишет: цитата: | Конечно, может возникнуть ситуация, когда не окажется заинтересованных программистов достаточной квалификации, чтобы сделать какие-либо крупные изменения - адаптировать его для другой ОС, например. Более того, уверен, что когда-нибудь это случится. |
| Уже случилось :) Харбор собран практически для всех платформ. Во всяком случае для FW это линукс, андроид, мак и что-там еще.. Не помню :) alkresin пишет: цитата: | Но расширять кругозор и быть готовым к переменам надо всегда. |
| Очень правильно и точно
|
|
|
|
| |
Пост N: 59
Зарегистрирован: 25.07.06
|
|
Отправлено: 26.03.19 22:44. Заголовок: nick_mi пишет: О н..
nick_mi пишет: цитата: | О несовместимости. У нас некоторые базы индексируются DBU и далее с ними работают программы на HARBOUR в режиме корректировки после этого с этими же базами в некоторых случаях рабjтают с DBU . Нареканий вроде не было. Индексы NTX. |
|
Вот и я в этой ветке здесь увидел обсуждение схожей проблемы правда применительно к связке сервер NW + ADS7. Так и не понятно к какому выводу пришли. Возможно, что это баг с моей стороны (я перед открытием индексов делаю кое-какие дополнительные проверки на предмет необходимости переиндексации) Буду курить сырцы дальше.
|
|
|
|
| |
Пост N: 60
Зарегистрирован: 25.07.06
|
|
Отправлено: 26.03.19 22:47. Заголовок: ММК пишет: Да практ..
ММК пишет: цитата: | Да практически никаких. Харбор есть, а перспектив нет. Очень мало ,кто пишет. |
|
А можно уточнить "мало" относится к разработчикам Харбор или к пишущим на нем?
|
|
|
|
| |
Пост N: 61
Зарегистрирован: 25.07.06
|
|
Отправлено: 26.03.19 22:55. Заголовок: 2 alkresin Пользуюсь..
2 alkresin Пользуюсь hwgdebug.exe. Классная вещь. Заметил один глюк. При задании пути к исходникам в поле ввода не получается ввести более одного символа. Может что-то я не так делаю, но пришлось пути вписывать ручками в в hwgdebug.xml И спасибо за все, что вы делаете
|
|
|
|
| |
Пост N: 216
Зарегистрирован: 19.05.05
|
|
Отправлено: 27.03.19 09:52. Заголовок: В HARBOUR нет встрое..
В HARBOUR нет встроенного механизма проверки индексов и автоматического запуска индексации.
|
|
|
|
| Администратор
|
Пост N: 3833
Зарегистрирован: 23.05.05
|
|
Отправлено: 27.03.19 10:10. Заголовок: alexmar пишет: 1 Ин..
alexmar пишет: цитата: | 1 Индексы несовместимы с клипперовскими? |
| Теоретически формат индексов одинаков. Но на практике лучше избегать совместной работы приложений на клиппере и харборе с одним индексом. Особенно это касается операций обновления индекса. Есть несколько схем блокировки индекса при обновлении, и не факт, что разнотипные приложения будут использовать одну и туже схему, так что индекс могут запортить. При установке харбор-приложений лучше все индексы перестроить. Ну и при совместной работе с БД по сети лучше всего использовать клиент-сервер, он как раз есть для харбора - это letodb. При этом достигается совсем другой уровень надежности, стабильности, да и производительности. Но это уже совсем отдельный вопрос.
|
|
|
|
| |
Пост N: 62
Зарегистрирован: 25.07.06
|
|
Отправлено: 28.03.19 00:51. Заголовок: Спасибо, буду иметь ..
Спасибо, буду иметь ввиду.
|
|
|
|
| moderator
|
Пост N: 1171
Зарегистрирован: 06.07.06
|
|
Отправлено: 28.03.19 08:53. Заголовок: alexmar пишет: Поль..
alexmar пишет: цитата: | Пользуюсь hwgdebug.exe. Классная вещь. Заметил один глюк. При задании пути к исходникам в поле ввода не получается ввести более одного символа |
| Исправлю. цитата: | А можно уточнить "мало" относится к разработчикам Харбор или к пишущим на нем? |
| И к тем, и к другим. Из основных разработчиков появляется сейчас иногда только один, Przemyslaw Czerpak. Из тех, кто делает правки помельче - человек, наверное, около пяти. Что касается пишущих - вопрос сложнее, не все ведь проявляют активность в сети, большая часть - это обычно "молчуны". Языков сейчас множество, и чтобы привлечь внимание, нужно что-то особенное. Существенную, иногда определяющую роль игоает мода, хайп. Большое значение имеет и компания, стоящая за языком/рлатформой. .NET, например, взлетел в свое время именно потому, что его продвигал MS, хотя реально в топе сейчас из всех языков этой платформы только C#.
|
|
|
|
| |
Пост N: 63
Зарегистрирован: 25.07.06
|
|
Отправлено: 02.10.19 02:48. Заголовок: Доброе время суток В..
Доброе время суток Возник вопрос Как включить в Harbour поддержку индексов idx (без ADS) ? В программе я делаю установку RDD по умолчанию через вызов DBSetDriver("SIXCDX") В Clipper 5.2e при выполнении индексации через DbCreateIndex создавались файлы idx, а в Harbour создаются cdx
|
|
|
|
| |
Пост N: 7103
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.10.19 08:24. Заголовок: alexmar пишет: Как ..
alexmar пишет: цитата: | Как включить в Harbour поддержку индексов idx (без ADS) ? |
| Скорее всего ни как
|
|
|
|
| |
Пост N: 64
Зарегистрирован: 25.07.06
|
|
Отправлено: 02.10.19 14:40. Заголовок: Таки получилось. Ока..
Таки получилось. Оказывается нужно было при вызове DbCreateIndex указывать в явном виде имя индексного файла и расширение. И попутно еще вопрос. Перевожу с Clipper 5.2e на консольный харбор группу программ, которые пересекаются по нескольким dbf-файлам. Я так понимаю, что из-за несовместимости индексов нужно сразу менять все программы. Интересует: 1 Есть ли какой-нибудь другой вариант чтобы на каком-то временном отрезке работали и клипперные и харборовские программы. 2 По какому типу индекса (NTX, IDX, CDX) бОльшая совместимость между Clipper 5.2e и Harbour?
|
|
|
|
| |
Пост N: 7104
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.10.19 16:40. Заголовок: alexmar пишет: Оказ..
alexmar пишет: цитата: | Оказывается нужно было при вызове DbCreateIndex указывать в явном виде имя индексного файла и расширение. |
| Шаманство какое то Придется так же при открытии индексов к базам , расширение указывать явно.
|
|
|
|
| постоянный участник
|
Пост N: 6459
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.10.19 16:50. Заголовок: alexmar пишет: 2 По..
alexmar пишет: цитата: | 2 По какому типу индекса (NTX, IDX, CDX) бОльшая совместимость между Clipper 5.2e и Harbour? |
| Я работал раньше с CDX-драйвером. Работало нормально тогда. Но это давно было и использовал хХарбор терминалку. хХарборовская терминалка до сих пор отлично пашет даже на слабых компах.
|
|
|
|
| |
Пост N: 219
Зарегистрирован: 19.05.05
|
|
Отправлено: 03.10.19 10:32. Заголовок: У нас работают задач..
У нас работают задачи как CLIPPER так и HARBOUR одновременно с одними и теми же базами. Переиндексацию часто делают в DBU проблем не замечалось. Индексы NTX. Harbour 3.2.0dev (r1601261444) Clipper 5.3
|
|
|
|
| |
Пост N: 66
Зарегистрирован: 25.07.06
|
|
Отправлено: 09.10.19 00:17. Заголовок: Pasha пишет: 3. Деб..
Апну свой вопрос. alexmar пишет: цитата: | 3 Вопрос по поводу 866 страницы в исходниках. В программе все отображается нормально, а вот кирилические символы в исходниках под дебагером - кракозябры. Есть ли какое-то решение вопроса? |
| Pasha пишет: цитата: | 3. Дебаггер - это такое же выполнение харбор-кода, как и основной программы. Дебаггер узнает о cp866 только после отработки hb_CdpSelect Возможно, еще надо выдать команду: hb_SetTermCP( "RU866" ) |
|
К сожалению, не помогло. Исходный текст в 866 кодировке в окне дебагера выглядит так: цитата: | #IfDef HB REQUEST HB_CODEPAGE_RU866 REQUEST HB_LANG_RU866 hb_cdpSelect( "RU866" ) HB_LANGSELECT("RU866") hb_SetTermCP( "RU866" ) #EndIf cName := P_DEFVAL(cName,'"‡ à ¡®â- ï ¯« â "') |
| Что можно еще сделать? Приложение консольное. Переводить исходники в Win кодировку пока не хочется
|
|
|
|
| |
Пост N: 220
Зарегистрирован: 19.05.05
|
|
Отправлено: 09.10.19 08:32. Заголовок: Возможно, в самом де..
Возможно, в самом дебагере не предусмотрен русский язык и надо его пересобрать .
|
|
|
|
| |
Пост N: 221
Зарегистрирован: 19.05.05
|
|
Отправлено: 09.10.19 08:57. Заголовок: Был неправ. Обычный ..
Был неправ. Обычный терминальный дебагер начал корректно отображать кириллицу после HB_CDPSELECT ('RU866')
|
|
|
|
| |
Пост N: 229
Зарегистрирован: 05.10.06
|
|
Отправлено: 09.10.19 15:49. Заголовок: nick_mi пишет: Обыч..
nick_mi пишет: цитата: | Обычный терминальный дебагер начал корректно отображать кириллицу после HB_CDPSELECT ('RU866') |
| А где взять и как подключить дебагер ?
|
|
|
|
| |
Пост N: 222
Зарегистрирован: 19.05.05
|
|
Отправлено: 09.10.19 16:00. Заголовок: Параметр -b в ваше..
Параметр -b в вашем.hbp файле для сборки программы
|
|
|
|
| |
Пост N: 230
Зарегистрирован: 05.10.06
|
|
Отправлено: 09.10.19 16:39. Заголовок: nick_mi пишет: Пара..
nick_mi пишет: цитата: | Параметр -b в вашем.hbp файле для сборки программы |
| не требует библиотек и вызывается стандартно AltD ?
|
|
|
|
| |
Пост N: 67
Зарегистрирован: 25.07.06
|
|
Отправлено: 09.10.19 17:14. Заголовок: nick_mi пишет: Возм..
nick_mi пишет: цитата: | Возможно, в самом дебагере не предусмотрен русский язык и надо его пересобрать . |
|
Скорее всего так и есть nick_mi пишет: цитата: | Был неправ. Обычный терминальный дебагер начал корректно отображать кириллицу после HB_CDPSELECT ('RU866') |
|
Наверно вы пользуете стандартный дебагер, а у меня дебагер от alkresin и вызов HB_CDPSELECT ('RU866') не помогает
|
|
|
|
| |
Пост N: 69
Зарегистрирован: 25.07.06
|
|
Отправлено: 09.10.19 17:56. Заголовок: Где-то натыкался в ф..
Где-то натыкался в форуме, а сейчас не могу найти... Как запретить DBUseArea при открытии dbf одновременно открывать одноименный индексный файл
|
|
|
|
| |
Пост N: 7107
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.10.19 18:21. Заголовок: SET AUTOPEN OFF..
SET AUTOPEN OFF
|
|
|
|
| |
Пост N: 70
Зарегистрирован: 25.07.06
|
|
Отправлено: 09.10.19 22:25. Заголовок: спасибо :sm36:..
спасибо
|
|
|
|
| |
Пост N: 223
Зарегистрирован: 19.05.05
|
|
Отправлено: 11.10.19 08:34. Заголовок: alexmar пишет: а у ..
alexmar пишет: цитата: | а у меня дебагер от alkresin и вызов HB_CDPSELECT ('RU866') не помогает |
| Да, дебагер от Кресина я пересобирал, что-бы там правильно отражалась кирилица
|
|
|
|
| |
Пост N: 71
Зарегистрирован: 25.07.06
|
|
Отправлено: 12.10.19 00:43. Заголовок: а что там нужно подп..
а что там нужно подправить?
|
|
|
|
| |
Пост N: 224
Зарегистрирован: 19.05.05
|
|
Отправлено: 16.10.19 21:22. Заголовок: Потерялся корректиро..
Потерялся корректированный исходник дебагера, печалька. Завтра попытаюсь вспомнить, где правил. Там исходный текст просто конвертил через OemToAnsi, большего не помню
|
|
|
|
| |
Пост N: 225
Зарегистрирован: 19.05.05
|
|
Отправлено: 17.10.19 11:13. Заголовок: Корректировка дебаге..
Корректировка дебагера Кресина. Там надо добавить строку hb_OemToAnsi в следующих местах STATIC FUNCTION SetText( cName, lClear ) . . . FOR i := 1 TO Len( oText:aArray ) IF Chr( 9 ) $ oText:aArray oText:aArray [ i ] := StrTran( oText:aArray [ i ] , Chr( 9 ), Space( 4 ) ) ENDIF oText:aArray [ i ] := hb_oemtoansi( oText:aArray [ i ] ) NEXT STATIC FUNCTION ShowRec( arr, n ) . . . FOR i := 1 TO nFields FOR j := 1 TO 4 arr1 [ i ,j ] := Hex2Str( arr [ ++n ] ) arr1 [ i , j ] := hb_oemToAnsi ( arr1 [ i ,j ]) NEXT NEXT Но это конечно все данные и тексты будет конвертировать. Если есть смешанные данные надо будет вводить в INI переменные и вставлять логику
|
|
|
|
| |
Пост N: 72
Зарегистрирован: 25.07.06
|
|
Отправлено: 17.10.19 22:39. Заголовок: спасибо :sm36:..
спасибо
|
|
|
|
| |
Пост N: 73
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.10.19 01:59. Заголовок: Dima пишет: alexmar..
Dima пишет: цитата: | alexmar пишет: цитата: Оказывается нужно было при вызове DbCreateIndex указывать в явном виде имя индексного файла и расширение. Шаманство какое то Придется так же при открытии индексов к базам , расширение указывать явно. |
| 1 Я был неправ. При явном указании расширения Harbour создает индексы с расширениями idx, но внутри структура все-таки cdx файла. Печалько. 2 Проверил совместимость индексов ntx в Clipper 5.2e и Harbour. Похоже совместимы. 3 А вот с совместимостью cdx индексов дела похуже. В режиме чтения они взаимно совместимы. А вот при редактировании получается такая ситуация. Если cdx был создан в Harbour, он и читается и корректируется в Clipper 5.2e вроде-бы без ошибок. А если был создан в Clipper 5.2e, то после его изменения в Harbour при его изменении в Clipper 5.2e возникает внутренняя ошибка 1210 (рассогласование данных и индекса). В Clipper 5.2e для cdx я использовал библиотеку Six3 (rdd SIXCDX) Получается для совместной работы Clipper 5.2e и Harbour можно использовать только индексы ntx, но у меня есть таблицы с memo полями в формате fpt, которые ntx не поддерживают. Тупик какой-то Была мысль прикрутить к Clipper 5.2e rdd dbfcdx от Harbour, но вряд ли из этого что-то получится. Может будут у кого-то идеи по поводу совместной работы Clipper 5.2e и Harbour?
|
|
|
|
| |
Пост N: 7130
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.10.19 09:17. Заголовок: alexmar пишет: Може..
alexmar пишет: цитата: | Может будут у кого-то идеи по поводу совместной работы Clipper 5.2e и Harbour? |
| В связке с ADS может получится , только версия ADS должна быть одинаковой для Clipper + соответствующая для Harbour Идем сюда http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=19 и тянем Advantage Client Engine Advantage Clipper RDD или более раннюю версию
|
|
|
|
| |
Пост N: 240
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.10.19 09:20. Заголовок: alexmar пишет: memo..
alexmar пишет: цитата: | memo полями в формате fpt, которые ntx не поддерживают |
| конвертни в dbt
|
|
|
|
| |
Пост N: 74
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.10.19 12:54. Заголовок: 2MIKHAIL Я в свое вр..
2 MIKHAIL Я в свое время спецом конвертнул их в fpt из-за постоянно возникающих ошибок переполнения счетчика количества блоков Dima пишет: цитата: | ... тянем Advantage Client Engine Advantage Clipper RDD или более раннюю версию |
|
а Advantage Database Server разве не нужен?
|
|
|
|
| |
Пост N: 7131
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.10.19 13:36. Заголовок: alexmar пишет: Adv..
alexmar пишет: цитата: | Advantage Database Server разве не нужен |
| можно локальный юзать ну если задача не сетевая а если сетевая то да нужен и если религия позволяет можно и пиратский качнуть PS я тупанул , для локального тож надо качнуть Advantage Database Server
|
|
|
|
| |
Пост N: 76
Зарегистрирован: 25.07.06
|
|
Отправлено: 12.02.21 16:39. Заголовок: Такой вопрос. Имеетс..
Такой вопрос. Имеется dbf файл с мемо файлом. Как определить с каким типом файла dbt или fpt открывается dbf файл, если в папке, где лежит dbf, лежат оба мемо-файла?
|
|
|
|
| Администратор
|
Пост N: 3998
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.02.21 17:57. Заголовок: Тип мемо однозначно ..
Тип мемо однозначно определяется по сигнатуре, 1-му байту dbf Если там 0x83 - то dbt, если 0xF5 или 0x30 - fpt
|
|
|
|
| постоянный участник
|
Пост N: 3562
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.21 18:25. Заголовок: Pasha пишет Тип мемо..
Pasha пишет цитата: | Тип мемо однозначно определяется по сигнатуре |
| После USE можно и так ? dbinfo(DBI_MEMOEXT)
|
|
|
|
| |
Пост N: 77
Зарегистрирован: 25.07.06
|
|
Отправлено: 10.03.21 10:01. Заголовок: Привет всем Есть иде..
Привет всем Есть идеи как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе? Программы построены на вызовах из меню. Меню динамическое, основанное на dbf-файле. Т.е. из самой программы можно изменять меню, подключая или отключая функционал. По поводу меню у меня 2 варианта: 1. Дублирование полей, привязанных к языку 2. Добавление в dbf файл меню мемо полей, содержащих локализованные названия и т.д Пока не решил какой вариант лучше. Может есть еще какие-то варианты? Браузер и средства для редактирования записей реализованы через текстовые вспомогательные файлы, в которых описаны названия колонок и полей в режиме редактирования. Т.е. для работы с браузером достаточно перевести эти файлы. Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере?
|
|
|
|
| постоянный участник
|
Пост N: 3594
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 10:16. Заголовок: alexmar пишет как ор..
alexmar пишет цитата: | как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе? |
| Посмотрите исходники hbedit http://www.kresin.ru/hbedit.html
|
|
|
|
| постоянный участник
|
Пост N: 1596
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.03.21 11:00. Заголовок: alexmar пишет: Осно..
alexmar пишет: цитата: | Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере? |
| Harbour поддерживает i18n "из коробки". Хорошим примером могут могут послужить исходники hbmk2 Поищите на этом форуме, я что-то также писал на эту тему. Harbour & i18n в примерах
|
|
|
|
| постоянный участник
|
Пост N: 3595
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:15. Заголовок: Кусочки текстов рабо..
Кусочки текстов работы с code page в hbedit (он у меня под рукой, как раб инструмент) Делаете подключение нужных ... REQUEST HB_CODEPAGE_ROISO, HB_CODEPAGE_ROWIN, HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_CODEPAGE_RUISO ... REQUEST HB_CODEPAGE_TRWIN, HB_CODEPAGE_UA1125, HB_CODEPAGE_UA1251, HB_CODEPAGE_UA866, HB_CODEPAGE_UAKOI8 REQUEST HB_CODEPAGE_UTF8 используете ... x1 := Int( (MaxCol()-nLen)/2 ) bufsc := Savescreen( y1, x1, y1+Len(aText)+3, x1+nLen ) oldc := SetColor( TEdit():cColorWR ) cp := hb_cdpSelect( "RU866" ) @ y1, x1, y1+Len(aText)+3, x1+nLen BOX "┌─┐│┘─└│ " hb_cdpSelect( cp ) FOR i := 1 TO Len( aText ) @ y1+i, x1 + 2 SAY aText NEXT SetColor( oldc ) i := edi_Read( aGets ) Restscreen( y1, x1, y1+Len(aText)+3, x1+nLen, bufsc ) ... hb_cdpSelect( "RU866" ) @ 09, 10, 15, 72 BOX "┌─┐│┘─└│ " @ 13, 20 SAY "├" @ 13, 60 SAY "┤" @ 13, 11 TO 13, 71 hb_cdpSelect( oEdit:cp ) @ 10, 12 SAY "Open file" @ 12, 12 SAY "[ ] ReadOnly" @ 12, 27 SAY "[ ] In a current window" IF !Empty( oEdit:cFileName ) aGets[5,3] := 1 @ 12, 55 SAY "[ ] Diff" ENDIF ... hb_cdpSelect( "RU866" ) @ 09, 20, 16, 60 BOX "┌─┐│┘─└│ " @ 14, 20 SAY "├" @ 14, 60 SAY "┤" @ 14, 21 TO 14, 59 hb_cdpSelect( oEdit:cp ) @ 10,22 SAY "Search for" @ 12, 22 SAY "[ ] Case sensitive" @ 12, 42 SAY "[ ] Backward" @ 13, 22 SAY "[ ] Whole word" @ 13, 42 SAY "[ ] Regular expr." ... oldc := SetColor( cColor ) cp := hb_cdpSelect( "RU866" ) aText := hb_aTokens( cText, ";" ) FOR i := 1 TO Len( aText ) nLen := Max( nLen, Len( aText ) ) NEXT nLen += 4 x1 := Int( (MaxCol()-nLen)/2 ) x2 := x1+nLen y2 := y1+Len(aText)+1 cBuffScr := SaveScreen( y1, x1, y2, x2 ) @ y1, x1, y2, x2 BOX "┌─┐│┘─└│ " hb_cdpSelect( cp ) FOR i := 1 TO Len( aText ) @ y1+i, x1 + 2 SAY aText NEXT SetColor( oldc ) ...
|
|
|
|
| постоянный участник
|
Пост N: 3596
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:17. Заголовок: УПС. В текстах было ..
УПС. В текстах было [ i ] без пробелов, исказилось, но суть понятна должна быть. Поиск RU866 в *.prg hbedit все выдаст
|
|
|
|
| постоянный участник
|
Пост N: 3597
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:29. Заголовок: PS С dbf, если все п..
PS С dbf, если все поля в нем в одной кодировке, при открытии указывайте CP, тогда в установленную кодировку hb_cdpSelect( cp ) будет переводить hb, если поля в разных кодировках, не указывайте CP при открытии, но уст. этот CP (программы) при чтении\записи. Др. языки из полей читайте в переменные и при выводе ставьте нужный CP с возвратом потом
|
|
|
|
| |
Пост N: 78
Зарегистрирован: 25.07.06
|
|
Отправлено: 10.03.21 13:42. Заголовок: Всем огромное спасиб..
Всем огромное спасибо. Пошел изучать матчасть Появятся вопросы, буду здесь отписываться
|
|
|
|
| |
Пост N: 79
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 01:39. Заголовок: Петр пишет: Harbour..
Петр пишет: цитата: | Harbour поддерживает i18n "из коробки". |
|
Файлик почитал. А где можно про эти функции поподробнее почитать? hb_i18n_gettext hb_i18n_ngettext, hb_i18n_gettext_strict, hb_i18n_ngettext_strict etc.
|
|
|
|
| |
Пост N: 7286
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.03.21 08:36. Заголовок: Может тут http://hmg..
|
|
|
|
| |
Пост N: 80
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 08:38. Заголовок: спасибо :sm36:..
спасибо
|
|
|
|
| постоянный участник
|
Пост N: 3598
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 08:58. Заголовок: alexmar пишет А где ..
alexmar пишет цитата: | А где можно про эти функции поподробнее почитать? hb_i18n_gettext hb_i18n_ngettext, hb_i18n_gettext_strict, hb_i18n_ngettext_strict etc. |
| в исходниках rtl\hbi18n?.* Но по мне это не совсем удобная штука, т.к. варианты текстов (окончания) могут форм. динамически, часто тексты привязаны к окнам и таблицам и выбранное кучей в .pot файлы - офигенная работа для разбора всего. Т.к. мы страдаем с языками со времен clipper и похожую схему выборки текстов для перевода делали еще в 90х ... Удобнее оказалось сразу делать текст в ini.RU, ini.LV, ini.EN с секциями, которые могут опр. использование в конкретном prg или окне + часто клиент не согласен с переводом того или др. текста. Имеем перекрывающие ini в подкаталоге пользователя, где только тексты от клиента (даем возможность их менять). Тексты не читаем в память (массивы или hash), достаются они ф-ей сразу из файла, т.к. в win буферизация, то все достается мгновенно. Все ini utf8 с BOM, если у ini нет bom - это старая версия и сразу переделываем в вариант с BOM. Пример ini _Agent.lv (базовый вариант в ресурсах программы) Скрытый текст
v.m. = 0.0063 [DOK] DokumRet = Pavadzīme Nr. SumNoPvn = Kopā bez PVN EUR SumArpvn = Kopā ar PVN EUR PvnProc = % PVN [KLI] Kli = Nosūtītājs Sanem = Saņēmējs Bank = Banka BankKod = Bankas kods BankScet = Bankas konts AdrJur = Juridiskā adrese AdrFiz = Preču izsniegšanas vieta: AdrMst = Preču saņemšanas vieta: Telefon = Tālruņa nr. RegNr = Reģistrācijas Nr. PvnNr = PVN reģistrācijas Nr. [RET] Nr = Nr. p.k. Ean = Svītru kods Name = Nosaukums KolVo = Daudz. EdIzm = Mērv. Cena = Vienības cena Sale = Atl. % Summa = Summa [TEXT] Menu10 = DOKUMENTI Menu11 = Zakazi ot agentov Menu20 = LOAD Menu21 = Load Excel ( xls ) files NewCopy = New as ... New = New Del = Delete Edit = Edit Metka = Zīme MetLine = Atzīmēt rindu MetAll = Atzīmēt visas rindas MetAllNo = Noņemiet atzīmi no visām rindām MsgCopy = Add new record from selected record MsgNew = Apend new record MsgDel = Dzēst izvēlēto rindu ; Delete selected record MsgDelAll = Dzēst visas rindas ; Delete ALL records MsgEdit = Edit selected record MsgSel = Selected record Title = Materiāli Vozvrat = Atgriešanās Refund = Atgriešanās Art = Article ; Raksts Cancel = Atcelt Anulet = Anulēt Info = INFO Error = ERROR Load = Load Ili = or g = .g. Line = Līnijas Stroki = Rindās Print = Drukāt Prnt = Drukāšana Continue = Turpināt Material = Materiāli MatName = Mat. nosaukums NotInf = Informācijas nav ! NotDok = Nav dokuments ! NotCena = Nav cenas NotMCen = Materiālu sarakstā nav cenas RedLine = Izvēlētās līnijas korekcija Data = Datums Ddat = Datums Edi = Mērv. Enter = Rindu izvēle Exit = Izeja ExitPrg = Programmas beigas ExitWnd = Izeja no saraksta Spisok = Sarakst Find = Meklēt Find1 = Meklēt no šķirotā saraksta Find2 = Meklēt pa grupas kodiem Find_Mt = Mēklet materiālos Found = found ! GoEnd = Uz beigām GoTom = Uz beigām GoTop = Sākumā Gru = Grupas Grupa = Grupas KlNum1 = Daudzums Kod = Kods Kods = Šķirot pa kodiem Ucen = Cenu uzskaite Rcen = Pārdošanas cena Scen = Kataloga cena Ncen = Jauna cena Mcen = Cena Mcnp = Pl.cena Medi = Mērv. Menshe = Mazāk, vienādi Met = Zīme Met1 = Zīme Met2 = Uzstādīt zīmes Met3 = Noņemt zīmes Ean = Svītru kods CenaR = Vienības cena CenaS = Norakstīšanas cena Mkol = Daudzums Kolvo = daudz. Kol. = Daudz. EdIzm = Mērv. Month1 = Mēnesis Month2 = Nomainīt mēnesi Msma = Atlaide Msmp = Pl.summa Msum = Summa Nam = Nosaukums Name = Šķirot pa nosaukumiem NewYear = Jauns gads Next = Nāk.rinda Next_ = Nākošā rinda NmName = Nosaukums NmNote = Piezīmes Nos = Nosaukums NotField = FieldName not found in table NotFound = File not found ! NotUsed = File not used ! NotKod = Kods nav atrasts ! NotPprNr = Nav PPR numeru ! Note = Piezīmes Nr. = Nr. R_1 = Kods R_2 = Nosaukums Sort = Šķirot Sort1 = Šķirot Sort2 = Šķirot pa kodiem / pa nosaukumiem SortPakape = Šķirot pēc pakāpe SortNodala = Šķirot pēc nodaļa SortKods = Šķirot pēc koda Vibor = Izvēle Viss = Viss saraksts Itogo = Kopā Pavisam = Pavisam Vsego = Pavisam: Kopa = Kopā izsniegts KopaItg = Pavisam apmaksai ScetNr = RĒĶINS Nr. PavadNr = PAVADZĪME Nr. Pavadz = Pavadzīme Nr. Kravas = Kravas pārvadātājs: AM_Reg = A/M reg. Nr. : Vodila = Vadītājs: SpecAtz1 = Apmaksa līdz SpecAtz3 = (preču piegāde) SamaksatD = Ar pārskaitījumu Samaksat = Samaksas veids un kārtība: SpecAtz = Speciālas atzīmes : SpecDop = Pasūtījuma Nr. : SaimnDA = Saimnieciskās darbības apraksts: PrecuPar = Preču piegāde (pārdošana) PavisApm = ```Pavisam apmaksai: ApmVard = `````( ar vārdiem ): VidalKto = Izsniedza : VidalDat = Datums : VidalGod = Piegādes datums: 201__.g.__________________ PriemKto = Pieņēma : ________________________ PriemPar = Paraksts : ________________________ PriemDat = Datums : ________________________ ScetKto1 = Rēķinu izsniedza : ScetKto2 = ```````````````````________________________ ____________________ ____________ ScetKto3 = ````````````````````````````amats vārds, uzvārds paraksts Kto1 = Amats Kto2 = Vārds, uzvārds Kto3 = Paraksts Wait = ... G A I D I E T ... Zime = Z. Save = Saglabāt SaveInf = Informācija jau ir saglabāta SaveNo = Dokuments nav saglabāts NoLock = Informācija nav saglabāts BarKod = BAR-CODE h1 = Nr. h2 = EAN h3 = Artikuls, nosaukums h4 = Daudz. h5 = Krāsa h6 = Informācija h7 = Cena Order = Pasūtīt Orders = Pasūtījumi OrderNr = Pasūtījuma Nr. OrderData = Pasūtījuma datumi OrderLine = Pasūtījuma līnijas OrdRet = Pieņemt dokum. Ordbtn = Orders ; Pasūtījumi OrdLst = Pasūtījumu saraksts Customer = Klients CustKli = Nosūtītājs Agenti = Aģenti Agent = Aģents Price = Cenrādis PriceCen = Cenrādis cena ; Cena no cenrāža PriceList = Preču cenu saraksts PriceMat = Materiālu cenrādis Dokum = Dokumenti Dok.Ser = Sēriju Dok.Dat = Dok. datums Dok.Nr = Dok. Nr. DokNr = Dokum. Nr DokNr. = Dokumenta Nr. DokDat = Dokumenta datums DokPrn = Dokumenta drukāšana Oplata = Apm. (dienas) gr1 = Kods gr2 = Nosaukums gr3 = Mērv. gr4 = Daudz. gr5 = Uzsk. cena gr6 = Uzsk. summa gr7 = Datums gr8 = Dokum.Nr gr9 = Debets gr10 = Krēdits gr11 = EAN gl5 = Ligum. cena gl6 = Ligum. summa gl7 = Starpiba gl8 = Koef. AdrF = Faktiskā adrese AdrFT = __________tālr.,fakss AdrJ = Juridiskā adrese AdrJT = __________tālr.,fakss DirDnm = Vadītāja amata nosaukums DirFio = Vadītāja uzvārds Bank = Bank Rscet = Nor.konta Nr. Kscet = Kor.konta Nr. Banka = Banka BankKod = Bankas kods BankScet = Bankas konts EurBank = EUR.BANK EurIban = EUR.IBAN EurSwift = EUR.SWIFT GlvDnm = Galv.grāmatveža amata nosaukums GlvFio = Galv.grāmatveža uzvārds IspAmats = Izpildvaras amats IspDnm = Izpildītāja amata nosaukums IspDnmEN = Post of performer IspDnmRU = Должность исполнителя IspFio = Izpildītāia uzvārds IspFioEN = Name, surname IspFioRU = Ф. И. О. исполнителя KodBil = Kods SIA Bilance NameK = Īis nosaukums NameP = Pilns nosaukums NodIn = Nodokļu inspekcija NodNr = Nodokļu maksātāja kods Note = Piezīmes PamV = Pamatdarbibas veids ParIn = Pārvaldes institūcija PvnNr = PVN maks. Nr. RegNr = Reģistrācijas Nr. PvnNr2 = PVN reģistrācijas Nr. Nosut = Nosūtītājs Sanem = Saņēmējs AdrJur = Jurid./dzīvesviet. adrese AdrFiz = Nosūtīšanas vietas adrese Telef = Tālr. BankNm = Kredītiestādes nosaukums BankKd = Kredītiestādes kods BankRs = Nor.konta Nr. M01 = Janvāris M02 = Februāris M03 = Marts M04 = Aprīlis M05 = Maijs M06 = Jūnijs M07 = Jūlijs M08 = Augusts M09 = Septembri M10 = Oktobris M11 = Novembris M12 = Decembris Prixod = Ieņēmumi Pereme = Pārvietoties Realiz = Realizācija Vibiti = Norakstīšana Dok_1 = Ieņēmumi no piegādātāja Dok_2 = Iekšējais apgrozījums Dok_3 = Realizācija Dok_4 = Norakstīšana 1_Dok = Dokuments 1_Skl = Noliktava 1_Kli = Piegādātāji 1_R_4 = Datums 1_R_50 = Sērija 1_R_5 = Numurs 1_R_6 = Summa 1_R_22 = Summa\valūtā 1_R_16 = Valūta\kods 1_R_3 = Cehs\Iecirknis 1_R_7 = Kods 1_R_19 = Nosaukums 1_R_19A = Reģ. Nr. UK\PVN Nr. / PK 1_R_200 = Grupas 1_R_92 = Dok.\tips 1_R_93 = Tipa\Nosauk. D3_Dok. = Dokum. D3_Dok = Dokuments D3_Skl = Noliktava D3_Kli = Saņēmējs D3_Cehs = No ceha D3_Rpt1 = Realizācija pēc saņēmēji D3_Rpt2 = Realizācija pēc saņēmēju grupām D3_Rpt3 = Realizācija par datumu D3_Rpt4 = Realizācija par datumu pēc saņēmēja D3_Rpt5 = Realizācija par datumu pēc saņēmēju grupām D3_R_20 = Līgums D3_R_4 = Datums D3_R_50 = Sērija D3_R_5 = Numurs D3_R_6 = Summa D3_R_11 = Daudzums D3_R_26 = Cena D3_R_27 = Summa D3_R_22 = Summa\valūtā D3_R_16 = Valūta\kods D3_R_3 = Cehs\Iecirknis D3_R_7 = Kods D3_MA_1 = Kods D3_MA_2 = Nosaukums D3_MA_3 = Mērv. D3_MA_4 = E A N D3_MA_5 = Artikuls D3_R_19 = Nosaukums D3_R_19A = Reģ. Nr. UK\PVN Nr. / PK D3_R_50A = Orders D3_R_51 = Orders D3_R_92 = Dok.\tips D3_R_93 = Tipa\Nosauk. D3_R_200 = Grupas Gru_All = Pilns saraksts grupu Kli_All = Pilns saraksts saņēmēju Kli_U03 = Piegādātāji Kli_U04 = Saņēmēji Kli_Adr = Adrese Kli_R_1 = Kods Kli_R_2 = Nosaukums Kli_R_2A = Pilns nosaukums Kli_R_3 = Juridiskā adrese Kli_R_3A = Kli_R_4 = Nod. m. kods Kli_R_5 = Rēg.NR. UK Kli_R_10 = Spec. informācīja Kli_R_11A = Valsts Kli_R_11B = Tips Kli_R_12B = Piezīmes Kli_R_13 = Grupas Kli_R_34 = Faktiskā adrese Kli_R_35 = Kli_R_40 = Cenrādis Kli_R_41 = Apmaksa ( dienas ) Kli_R_43 = Aģents Kli_R_31 = LV Adrese Kli_R_32 = RU Адрес Kli_R_33 = EN Adress Kli_R_51 = LV Nosaukums Kli_R_52 = RU Наименование Kli_R_53 = EN Name Kli_R_54 = Agreement
| в коде текст достается ф-ей _gTxt("ключ", ...) в параметрах можно указать варианты окончания и секцию подмены от установл. default
|
|
|
|
| Администратор
|
Пост N: 4009
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.03.21 09:43. Заголовок: SergKis пишет: Т.к...
SergKis пишет: цитата: | Т.к. мы страдаем с языками со времен clipper |
| Хотя наши страдания с языками уже закончились, вспоминаю времена, когда эти страдания еще были... Возвращаясь к исходному вопросу. Проще всего идти по п.1: добавить в dbf локализованные поля: Name/NameU. Я так и делал
|
|
|
|
| |
Пост N: 81
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 09:49. Заголовок: alexmar пишет: Т.к...
SergKis пишет: цитата: | Т.к. мы страдаем с языками со времен clipper и похожую схему выборки текстов для перевода делали еще в 90х ... Удобнее оказалось сразу делать текст в ini.RU, ini.LV, ini.EN с секциями |
| Т.е вариант локализации с ini-файлами использовали еще в Clipper? А вместо _gTxt() что использовали?
|
|
|
|
| постоянный участник
|
Пост N: 3599
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 10:15. Заголовок: alexmar пишет А вмес..
alexmar пишет цитата: | А вместо _gTxt() что использовали? |
| Т.к. hash не было был dbf с полями EN, RU, LV и index unique, переводили в dbf _gTxt() не было, выбирали из prg строки в "", '' потом меняли прямо в prg, но таких prg было мало, т.к. была своя Ide с базой txt формата, где хранились все окна с координатами, типа (упрощенно схема) Func SvWnd(y,x,w,h) ; Retu hb_valtoexp({ y,x,w,h, savescreen(y,x,w,h), <тип данных> }) // <тип данных> : Func RsWnd(w) ; Local a := &(w) ;Retu restscreen(a[1],a[2],a[3],a[4], a[5])) // панель, текст, структура, dbf, ... ф-ии на C, доставали окна, тексты с окон. панелей. В ide (уже на S87 была) можно было рисовать окна, привязывать к Say,Get,, макросы,своей achioce и tbrowse, так вот файлы были отд. для каждого языка и из dbf процедурой переносились в нужный и от ENV установки подкл. тот или иной язык.
|
|
|
|
| постоянный участник
|
Пост N: 1598
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.03.21 10:33. Заголовок: alexmar пишет: А гд..
alexmar пишет: цитата: | А где можно про эти функции поподробнее почитать? hb_i18n_gettext hb_i18n_ngettext, hb_i18n_gettext_strict, hb_i18n_ngettext_strict etc. |
| Можно посмотреть исходники и много чего полезного можно взять из ChangeLog.txt
|
|
|
|
| постоянный участник
|
Пост N: 1599
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.03.21 10:52. Заголовок: SergKis пишет: Но п..
SergKis пишет: цитата: | Но по мне это не совсем удобная штука, т.к. варианты текстов (окончания) могут форм. динамически, часто тексты привязаны к окнам и таблицам и выбранное кучей в .pot файлы - офигенная работа для разбора всего. |
| Все это предусмотрено до/для нас. P.S. И кстати редакторы po/pot файлов f.e. poedit - удобнейшая вещь.
|
|
|
|
| постоянный участник
|
Пост N: 3604
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 18:00. Заголовок: Петр пишет Все это п..
Петр пишет цитата: | Все это предусмотрено до/для нас |
| Даже не сомневаюсь, только сначала надо перелопатить кучу prg текстов для #xtranslate _( <x,...> ) => hb_i18n_gettext( <x> ) PROCEDURE main() ? _( " Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!") RETURN потом обработать редактором полученные файлы и подкл. их обратно. цитата: | И кстати редакторы po/pot файлов f.e. poedit - удобнейшая вещь |
| Пока ни один редактор не поддерживал кодировку LV866? кроме тех, которые пересобирали сами
|
|
|
|
| Администратор
|
Пост N: 4010
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.03.21 20:14. Заголовок: А что это за кодиров..
А что это за кодировка, LV866 ? Это cp866 с дополнительными латышскими символами на месте псевдографики ?
|
|
|
|
| постоянный участник
|
Пост N: 3605
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 20:30. Заголовок: Pasha пишет Это cp86..
Pasha пишет цитата: | Это cp866 с дополнительными латышскими символами на месте псевдографики ? |
| Да это RU866 с лат. символами вместо псевдографики, в dos cp была факт. стандартом, пока потом не разделили на 755, 1257
|
|
|
Ответов - 245
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
All
[только новые]
|
|