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





Пост N: 67
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 30.11.14 11:22. Заголовок: Перевожу Clipper на консольный Харбор


Добрый день, уважаемое сообщество!

Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь.
Заранее всем участникам огромное спасибо!



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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 все работает


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




Пост 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 ?

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





Пост 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 наверное...

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




Пост 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 привычнее и быстрее будет



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




Пост N: 3229
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.12.14 08:06. Заголовок: Клиент ads для клипп..


Клиент ads для клиппера поддерживает индексацию на клиенте, а все 32-х разрядные клиенты ads, в том числе харбор-клиент, не поддерживают. Поэтому такое создание индекса не сработает. Но это вопрос ads, а не харбора, и вопрос неразрешимый.

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



Пост 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


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





Пост 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



Не работает. Ну это не так принципиально, перепишу.

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





Пост N: 72
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.12.14 21:34. Заголовок: Еще вопросики: 1.Как..


Еще вопросики:
1.Как запустить консольный Harbor в виде системной службы, в скрытом виде?
2.Можно ли одновременно использовать ADS в одной программе по IP и IPX протоколу, по выбору? Мне нужно конектиться к БД которая на NW лежит и одновременно подключаться к удаленной БД через интернет.
3.Можно ли в консольной версии Harbor подключить такие библиотеки как FR ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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
Если что заинтересует, пиши.

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




Пост N: 380
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.12.14 22:23. Заголовок: 1.Как запустить конс..



 цитата:
1.Как запустить консольный Harbor в виде системной службы, в скрытом виде?



В исходниках есть пример службы core\contrib\hbnetio\utils\hbnetio

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





Пост N: 73
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.12.14 11:18. Заголовок: Error BASE/1005 Mes..


Error BASE/1005 Message not found: TBCOLUMN:_COLORBLOC

Где посмотреть справку по Tbrowse ?

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




Пост N: 3232
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.14 12:48. Заголовок: Справку можно посмот..


Справку можно посмотреть в ng по клипперу, а по поводу этой ошибки: замените выражение вида

<obj>:colorbloc

на

<obj>:colorblock


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





Пост N: 74
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.12.14 13:54. Заголовок: Pasha пишет: замени..


Pasha пишет:

 цитата:
замените выражение вида
<obj>:colorbloc
на
<obj>:colorblock



Спасибо, глаз замылился, а в Clipper и так работало...

Еще вопросы:
Я так понимаю что цветовая палитра может быть более расширенная? Где посмотреть полную карту палитры?
цвет вида g*+/b не мигает, как исправить?
Какие можно шрифты использовать в консоли?

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



Пост N: 117
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 03.12.14 15:32. Заголовок: Какие можно шрифты использовать в консоли?


Моноширинные. Courier New, Lucida Console,Consolas..

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





Пост N: 75
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 05.12.14 13:46. Заголовок: petr707 пишет: Моно..


petr707 пишет:

 цитата:
Моноширинные. Courier New, Lucida Console,Consolas..



А работать со шрифтами так же как и в clipper? или там своя система управления шрифтами?

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




Пост 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)


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





Пост 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 раз
Как могу поменять толщину шрифта?
Как изменить шрифт у в полноэкранном режиме?
Как автоматически запускть в полноэкранном режиме?

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




Пост 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"


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




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост 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

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





Пост N: 78
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 24.02.15 10:19. Заголовок: Vlad04 пишет: nRecC..


Vlad04 пишет:

 цитата:
nRecCount:=RecCount()
if nRecCount > 0



А какой формат возвращаемых данных? Как их разбирать?



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





Пост N: 79
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 24.02.15 12:15. Заголовок: Еще вопросы: - можно..


Еще вопросы:
- можно ли вставить картинку в Tbrowse ?
- где можно посмотреть примеры подключения к MYSQL ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 489
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 24.02.15 14:23. Заголовок: А какой формат возвр..



 цитата:
А какой формат возвращаемых данных? Как их разбирать?


Это та же DBF. Формат возвращаемых данных = Формату исходных полей, которые учавствуют в запросе.

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




Пост 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 - опередил



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




Пост N: 4525
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 14:44. Заголовок: MIKHAIL пишет: - мо..


MIKHAIL пишет:

 цитата:
- можно ли вставить картинку в Tbrowse ?


Картинки показывать можно но в бровс вставить скорее всего не получится (ну разве что в заголовок) и для
этих целей лучше использовать одну из GUI библиотек.

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





Пост N: 80
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 24.02.15 15:43. Заголовок: Dima пишет: Пример ..


Dima пишет:

 цитата:
Пример самодостаточный , поиграйся с ним .



А с какими параметрами поиграться? как добиться одновременного использования шрифтов разных размеров?
У меня меняется шрифт на всем экране. А в полноэкранном режиме впечатление такое что справа еще отступ символов на 10, 80 символов выводит не до конца экрана...

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




Пост N: 4526
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 15:52. Заголовок: MIKHAIL пишет: как ..


MIKHAIL пишет:

 цитата:
как добиться одновременного использования шрифтов разных размеров?


Боюсь ни как...

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





Пост N: 81
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 24.02.15 16:22. Заголовок: Dima пишет: Боюсь н..


Dima пишет:

 цитата:
Боюсь ни как...


т.е. только под GUI можно?

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




Пост N: 4527
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 16:30. Заголовок: MIKHAIL пишет: т.е...


MIKHAIL пишет:

 цитата:
т.е. только под GUI можно?


Да

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



Пост N: 122
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 24.02.15 17:59. Заголовок: Не совсем так..


Видимо, все-таки можно иметь разные шрифты в разных открытых окнах.
В пределах одного окна - только один размер.

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




Пост N: 4528
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.02.15 18:01. Заголовок: petr707 пишет: Види..


petr707 пишет:

 цитата:
Видимо, все-таки можно иметь разные шрифты в разных открытых окнах.


да это понятно что в разных можно

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





Пост N: 83
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 27.02.15 17:36. Заголовок: Как подключить мышку..


Как подключить мышку для WVT терминала ?

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



Пост N: 123
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 27.02.15 19:01. Заголовок: mousetst.prg


Можно начать с mousetst.prg из комплекта HBxx

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





Пост N: 84
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 28.02.15 09:39. Заголовок: petr707 пишет: Можн..


petr707 пишет:

 цитата:
Можно начать с mousetst.prg из комплекта HBxx



А как привязать к prompt, achoice, get ? Неужели нет встроенного механизма обработки стандартных объектов?
Работа с тачскрином аналогична мышке?


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





Пост N: 85
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 28.02.15 10:06. Заголовок: petr707 пишет: В пр..


petr707 пишет:

 цитата:
В пределах одного окна - только один размер.


А может есть какие нибудь функции вывода текста в графике другим шрифтом, как в clipper например:
GWRITEAT(X , Y , cString, nColor, LLG_MODE_SET, aFont)


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




Пост N: 4556
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.02.15 10:13. Заголовок: harbour\contrib&..


harbour\contrib\gtwvg\

Там есть примеры

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



Пост N: 124
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 28.02.15 13:53. Заголовок: А так ли уж полезна мышка в VWT...


Achoice и get будут реагировать на мышку, как только откроется прием событий от мышки INKEY_ALL
Для GET мышка может дать проблему за счет произвольного доступа к любому поле на форме,
если специально об этом не позаботиться.
Клавишками - только последовательный(ну или контролируемый программой) обход полей ввода на форме.
Мышка для VWT это все же "эрзац".
Возможно, есть смысл выбрать сразу GUI (графику с мышкой), если тип задачи этого сильно требует.

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





Пост N: 86
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 28.02.15 21:25. Заголовок: petr707 пишет: есл..


petr707 пишет:

 цитата:
если тип задачи этого сильно требует.


Просто хочется под планшет интерфейс адаптировать, никогда с мышкой не требовалось работать...
А как открыть прием событий INKEY_ALL для prompt, get, achoice и tbrowse ?

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



Пост N: 125
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 28.02.15 22:54. Заголовок: EVENTMASK


Поиск по EVENTMASK в этой конфе даст наводки. И смотрите примеры PRG из комплекта поставки Harbour

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





Пост N: 87
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.03.15 15:07. Заголовок: petr707 пишет: В пр..


petr707 пишет:

 цитата:
В пределах одного окна - только один размер.



Видимо все же можно выводить другой шрифт с помощью Wvt_DrawLabel

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




Пост N: 4569
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.15 21:46. Заголовок: MIKHAIL Если время ..


MIKHAIL
Если время есть и желание то конечно лучше все делать в GUI. Согласен с Петром.

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





Пост N: 103
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 31.08.15 06:28. Заголовок: Можно ли запустить н..


Можно ли запустить на выполнение программу без открытия окна? Или в скрытом режиме, либо в трее ?

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



Пост N: 146
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 31.08.15 07:22. Заголовок: Можно


Нужно уточнить нужные условия запуска - зачем без окна ? Чтобы картинка не мелькала ?
Задачу, свернутую в трей, оператор может поднять и снять(удалить).

1) Запуск от любой обертки вида START ..c параметрами , RUNAS и т.д.
2) По Заданию планировщика Windows - разовому или постоянно существующему, особенно если от другого профиля
3) Написать на Harb свой запускатель с нужными свойствами
4) Окно может быть, но быть невидимым. Это устроит ?

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




Пост N: 5260
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.08.15 08:35. Заголовок: MIKHAIL пишет: Мож..


MIKHAIL пишет:

 цитата:

Можно ли запустить на выполнение программу без открытия окна?


Да , как сервис.

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



Пост N: 367
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 31.08.15 15:53. Заголовок: Тоже без окна do wh..


Тоже без окна

do while .T.
бла-бла-бла
sysrefresh()
enddo

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





Пост N: 104
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.09.15 17:16. Заголовок: petr707 пишет: Нужн..


petr707 пишет:

 цитата:
Нужно уточнить нужные условия запуска - зачем без окна ?



Головная программа будет запускать на выполнение вспомогательную программу, работа с интерфейсом которой не нужна совсем, а выполняться она может некоторое время и само по себе окно может мешать или кто то попробует его закрыть. Поэтому нужно его как то скрыть от пользователя.

Dima пишет:

 цитата:
Да , как сервис.


А вчем принципиальная разница от обычного приложения и как это реализовано? Какие управляющие команды запускают программу как сервис?

fil пишет:

 цитата:
do while .T.
бла-бла-бла
sysrefresh()
enddo



Не совсем понял в чем тут соль? я так понимаю это для MiniGUI что то? У меня консольная программа.

Хотелось бы просто как то отключить консоль, что бы небыло окна

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 809
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.09.15 17:46. Заголовок: MIKHAIL пишет:Хотело..


MIKHAIL пишет:
 цитата:
Хотелось бы просто как то отключить консоль, что бы небыло окна


Не делайте команд (функций) очистки и вывода на экран - окна консоли не будет, т.е. CLS, CLEAER SCREEN, Say .., ? ...

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





Пост N: 105
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 03.09.15 11:09. Заголовок: SergKis Спасибо..


SergKis Спасибо

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





Пост 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 все без проблемм собирается.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4519
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.15 14:19. Заголовок: MIKHAIL пишет: что ..


MIKHAIL пишет:

 цитата:
что ему не нравиться?


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

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




Пост 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) , и всё прекрасно
компилится.


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





Пост N: 107
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 13.09.15 17:30. Заголовок: Dima пишет: Текст н..


Dima пишет:

 цитата:
Текст набран в кодировке OEM (866) и не компилится , переключаемся в кодировку ANSI (1251) ,
наблюдаем левый символ(ы) , валим их(его) , возвращаемся в кодировку OEM (866) , и всё прекрасно
компилится.



Точно, открыл в другом редакторе, увидел, удалил все нормуль. Спасибо.

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



Пост N: 149
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 13.09.15 17:58. Заголовок: Вызов без окна..


Использую EXECANDWAIT отсюда click here
и hb_processRun


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





Пост 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 эта-же база работает без ошибок.

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




Пост N: 5286
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.09.15 09:21. Заголовок: MIKHAIL пишет: Erro..


MIKHAIL пишет:

 цитата:
Error ADSNTX/5068 Error 5068: There is no current record


индекс пересоздавал ?

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





Пост N: 109
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 15.09.15 11:47. Заголовок: Dima пишет: индекс ..


Dima пишет:

 цитата:
индекс пересоздавал ?



Да

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





Пост N: 110
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 27.10.15 08:28. Заголовок: Как можно управлять ..


Как можно управлять выводом лога ошибок программы?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1173
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 27.10.15 08:35. Заголовок: MIKHAIL пишет: Как ..


MIKHAIL пишет:

 цитата:
Как можно управлять выводом лога ошибок программы?


Посмотрите в исходниках Харбора файл errsys.prg


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




Пост N: 5326
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.10.15 11:33. Заголовок: MIKHAIL пишет: Как ..


MIKHAIL пишет:

 цитата:
Как можно управлять выводом лога ошибок программы?


Set( _SET_HBOUTLOG[, <cFileName>] ) -> <cOldFileName>

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





Пост N: 111
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 27.10.15 12:23. Заголовок: Dima а у меня вообще..


Dima а у меня вообще при ошибке выполнения, файл лога не создается. Что нужно добавить в код?

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




Пост N: 5327
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.10.15 13:57. Заголовок: MIKHAIL Проверил у ..


MIKHAIL
Проверил у себя , таки да , не создается лог в случае падения.

PS
Можно вот так xhb_errorsys() где то в самом начале проги.

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





Пост N: 112
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 27.10.15 19:06. Заголовок: Dima Так работает н..


Dima
Так работает но имя лога не меняется.

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




Пост N: 5328
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.10.15 19:15. Заголовок: MIKHAIL Пробуй XHB_..


MIKHAIL
Пробуй XHB_ERRORLOG( [<cFileName>], [<lAppend>] ) -> { cOldName, lOldAppend }

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



Пост 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

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





Пост N: 113
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 28.10.15 15:42. Заголовок: Как можно сделать ра..


Как можно сделать разбор XML файла? где можно список функций и описание почитать?

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




Пост N: 5329
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.10.15 15:44. Заголовок: MIKHAIL Начни с htt..

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





Пост 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 - можете использовать для освоения... съэкономите кучу времени


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





Пост 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 ?

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



Пост N: 162
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 10.11.15 16:02. Заголовок: "Плохой" индекс ?


Похоже на поведение при индексе , который не соответствует таблице.
Есть индексные выражения из связанных по relation областей ?
Сделайте проверку индекса после свала.

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





Пост N: 119
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 10.11.15 17:29. Заголовок: petr707 пишет: Похо..


petr707 пишет:

 цитата:
Похоже на поведение при индексе , который не соответствует таблице.
Сделайте проверку индекса после свала.



Так дело в том что с одной базой работают приложение на Clipper и та же самая переведенная на Harbour. Так вот Clipper ведет себя нормально
Причем тестил как на ADS7+Novell IPX так и на ADS10+Linux IP, везде одна борода... даже на LocalAds это происходит

petr707 пишет:

 цитата:
Есть индексные выражения из связанных по relation областей ?



Да, есть, буду пробовать их отключать, но больно муторно выискивать где нужно будет править код....

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



Пост N: 163
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 10.11.15 17:46. Заголовок: Одновременная работа Clipper app и Harbour app ?


.. работают приложение на Clipper и та же самая переведенная на Harbour..

Одновременно ? Лучше не делать.
Переправу надо перейти.

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





Пост N: 120
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 10.11.15 17:56. Заголовок: petr707 пишет: Одно..


petr707 пишет:

 цитата:
Одновременно ? Лучше не делать.


Так и отдельно, без Clipper приложений тот же косяк...

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



Пост N: 164
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 10.11.15 21:48. Заголовок: Как найти глюк ?


Старый способ - контрольная группа - хоть в биологии хоть в космонавтике

1) Сделать тестовую среду как копию (реплику) основной БД
2) Провести полную начальную индексацию
3) использовать только новый софт
4) повторять все проводки как в рабочей базе со старым софтом
5) после первого свала - всем стоп
6) ну и изучайте по всем срезам состояние этого контрольного примера


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




Пост N: 3352
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.11.15 09:08. Заголовок: Ads имеет два клиент..


Ads имеет два клиента: старый клипперовский 16-разрядный, и Ace. Они работают не одинаково.
Проблема может быть именно в ace, даже не в харборе.

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




Пост N: 5343
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.11.15 15:04. Заголовок: вообще у меня была с..


вообще у меня была связка Clipper+ADS и Harbour+ADS
обе проги юзали одну и ту же базу.
версии ADS (ACE и для Clipper) были 5.5 и работало нормально

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





Пост N: 121
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 11.11.15 19:03. Заголовок: Скорее всего моя дог..


Скорее всего моя догадка была правильной, клиент под Харбор проверяет соответствие выполнения set relation, если передвинуть в связаной таблице на другую запись, будет эта ошибка. Убрал все relations пока полет нормальный...

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




Пост N: 5344
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.11.15 22:21. Заголовок: MIKHAIL Сделай тест..


MIKHAIL
Сделай тестовый не большой пример.

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





Пост 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))





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





Пост 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.

Что не так?

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




Пост N: 5345
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.15 13:25. Заголовок: MIKHAIL пишет: ADSH..


MIKHAIL пишет:

 цитата:
ADSHANDLE:=AdsConnect(cPath)



Не верно ловишь хендл
Лови его так ADSHANDLE:=AdsConnection()
после AdsConnect(cPath) если он вернет TRUE

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





Пост 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 ()
Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях.
С чем это может быть связано?


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




Пост 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 ?

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




Пост N: 5347
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.15 15:02. Заголовок: MIKHAIL пишет: Еще ..


MIKHAIL пишет:

 цитата:
Еще вопрос по AdsMgGetUserNames ()
Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях.
С чем это может быть связано?


Возможно отвалилась связь с ADS а коннект живет по умолчанию 120 сек.
Или не совсем верно завершаешь программу. В конце вставь перед QUIT
AdsDisconnect(ТВОЙ ХЕНДЛ)
AdsApplicationExit()



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





Пост 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


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




Пост 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

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




Пост 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
}


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




Пост N: 5349
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.15 17:21. Заголовок: Haz пишет: версия с..


Haz пишет:

 цитата:
версия сервера какая ?


Хороший вопрос

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





Пост N: 127
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 12.11.15 17:27. Заголовок: Haz пишет: версия с..


Haz пишет:

 цитата:
версия сервера какая ?



LINUX 10.03

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




Пост N: 5350
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.15 18:03. Заголовок: MIKHAIL пишет: LINU..


MIKHAIL пишет:

 цитата:
LINUX 10.03


Это версия ADS под LINUX или версия LINUX ?

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





Пост N: 128
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 12.11.15 18:19. Заголовок: Это версия ADS под L..


Это версия ADS под LINUX

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




Пост N: 5352
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.15 18:22. Заголовок: MIKHAIL Можно попро..


MIKHAIL
Можно попробовать "покурить" их форум на предмет ADSISCONNECTIONALIVE + LINUX
http://devzone.advantagedatabase.com/dz/content.aspx?

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




Пост N: 690
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.11.15 10:35. Заголовок: Dima пишет: LINUX 1..


MIKHAIL пишет:

 цитата:
LINUX 10.03


а клиентская часть ( DLL на компе пользователя ) тоже версии 10 ?
там есть adsver.exe - проверь на всякий случай

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





Пост 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 разрядный

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




Пост 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.





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




Пост N: 5353
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.11.15 18:07. Заголовок: Haz пишет: adsConne..


Haz пишет:

 цитата:
adsConnect60( сDict, nServerType, cUser, cUserPass, 0, @hConnection )
AdsIsConnectionAlive(hConnection) дает .T.


Не запутывай человека словарями . При обычном коннекте у меня тоже работает AdsIsConnectionAlive.

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





Пост N: 130
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 13.11.15 18:11. Заголовок: А нужно какие значе..



А нужно какие значения прописывать для сDict, nServerType, cUser, cUserPass, hConnection ?

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




Пост N: 692
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.11.15 18:13. Заголовок: Dima пишет: Не запу..


Dima пишет:

 цитата:
Не запутывай


я как пример привел, и в мыслях не было путать )))
MIKHAIL пишет:

 цитата:
версию клиентской DLL, ее можно просто в свойствах файла увидеть


возможно и так , не проверял. А по чеснаку она в текстовом виде в файле сразу после строки EsIAx!@# которую ADS использует как заголовок регистрационной информации.

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




Пост 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 в том числе и с индексами.

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




Пост N: 693
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.11.15 18:15. Заголовок: Haz пишет: А нужно ..


MIKHAIL пишет:

 цитата:
А нужно какие значения прописывать для сDict, nServerType, cUser, cUserPass, hConnection ?


это параметры конекта к словарю данных , пример тута
https://github.com/harbour/core/blob/master/contrib/rddads/tests/datad.prg

Дима посоветовал проще , без словаря обычным AdsConnect( в путь)

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





Пост 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(), поэтому у меня были множественные соединения из одной программы.

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




Пост 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


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





Пост N: 132
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 11:53. Заголовок: Dima пишет: if A..


Dima пишет:

 цитата:
if AdsConnect("c:\")
adshandle:=AdsConnection()
? AdsIsConnectionAlive(adshandle)
endif


у меня все равно выдает .F.
Может какие то установки или настройки ADS нужны?

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




Пост N: 5356
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 12:35. Заголовок: MIKHAIL а если этот..


MIKHAIL
а если этот тест запустить непросредственно на винсервере r8 64 , где живет ADS.

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




Пост 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
потом проверь тест который дал Дима

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




Пост N: 5357
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 13:07. Заголовок: MIKHAIL Что выдает ..


MIKHAIL
Что выдает
? AdsVersion(3)

у меня
Advantage 32-bit Client Engine for Windows, v10.1

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





Пост N: 133
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 13:50. Заголовок: Dima пишет: ? AdsVe..


Dima пишет:

 цитата:
? AdsVersion(3)

Advantage 32-bit Client Engine for Windows, v10.10

Тестил на своем и на сервере, везде одно и тоже


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




Пост N: 5358
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 14:25. Заголовок: MIKHAIL Да уж , пол..


MIKHAIL
Да уж , полтергейст какой то ))
А RddAds переcобирал c новым ACE ?

ps
может файер что то блочит........

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





Пост N: 134
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 14:55. Заголовок: Dima пишет: А RddAd..


Dima пишет:

 цитата:
А RddAds переcобирал c новым ACE ?


Я пока не очень разбираюсь в этом, подскажите как это сделать пошагово?

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




Пост N: 5359
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 14:58. Заголовок: MIKHAIL пишет: Я по..


MIKHAIL пишет:

 цитата:
Я пока не очень разбираюсь в этом, подскажите как это сделать пошагово?


компилятор BCC или MINGW ?
сырцы Harbourа есть ?

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





Пост N: 135
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 15:01. Заголовок: BCC, сырцы есть..


BCC, сырцы есть

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




Пост 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 Харбора)

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




Пост 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 и установив. там в поставке идут эти библиотеки

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





Пост N: 136
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 15:57. Заголовок: Собрал, все заработа..


Собрал, все заработало!

Еще мне не понятно отличие функций AdsMg***
Мне нужно получить список пользователей, а при AdsConnect() функция AdsMgGetUserName() не работает, приходится использовать AdsMgConnect(), но при этом получается несколько соединений к ADS от одного пользователя. И как узнать свое собственное подключение в списке ?

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




Пост N: 5361
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 16:34. Заголовок: MIKHAIL пишет: AdsM..


MIKHAIL пишет:

 цитата:
AdsMg***


Для всех этих функций нужен AdsMgConnect()

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




Пост 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"}}


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





Пост N: 137
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 14.11.15 17:24. Заголовок: Спасибо всем огромно..


Спасибо всем огромное!!! Буду дальше разбираться

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




Пост N: 5363
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.11.15 20:46. Заголовок: MIKHAIL На заметку ..

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





Пост N: 138
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 19.11.15 18:53. Заголовок: Иногда (редко) подви..


Иногда (редко) подвисает программа, не реагирует ни на что. Хотя иногда может и отвиснуть. Как отследить в чем проблемма?
Код работал на Clipper много лет.

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




Пост N: 5369
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.11.15 19:05. Заголовок: MIKHAIL По сети раб..


MIKHAIL
По сети работает или локально ?
Виснет в разных местах ?
Какая ось на станции ?

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





Пост N: 139
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 20.11.15 15:12. Заголовок: Dima причина оказала..


Dima причина оказалась в железе, USB порт клавиатуры видно подглючивал.

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





Пост N: 140
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 20.11.15 18:20. Заголовок: Не полностью выдает ..


Не полностью выдает детализацию ошибки, а именно номер строки ошибки. Выводит только номер строки функции где произошла ошибка. Как подправить?

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




Пост N: 5370
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.11.15 18:40. Заголовок: MIKHAIL пишет: Не п..


MIKHAIL пишет:

 цитата:
Не полностью выдает детализацию ошибки


Покажи на простом примере , что имеется в виду.

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





Пост 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 это ссылка на функцию, в которой тоже несколько тысяч строк кода, где собственно и происходит ошибка.

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




Пост 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)


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1176
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.11.15 22:28. Заголовок: MIKHAIL, у тебя - xH..


MIKHAIL, у тебя - xHarbour. Видимо, собран с опцией "suppress line numbers". Вот отсюда нули в модулях самого xHarbour

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





Пост N: 142
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 21.11.15 12:37. Заголовок: Dima Так дело в том ..


Dima Так дело в том что иногда отображает номер строки ошибки, а иногда нет.
т.е. некоторые ошибки такие как:
i:=1
len(i)
выведет правильно номер строки, а такую:
i:=1
? i[1]
не выводит.

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





Пост N: 479
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 23.11.15 23:52. Заголовок: Судя по выкладке, ис..


Судя по выкладке, используется нестандартный обработчик ошибок.
Попробуйте на время тестирования заменить xhb/xhberr.prg на простой и дубовый errorsys.prg из дистрибутива и посмотреть на его результаты.

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





Пост N: 143
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.12.15 15:32. Заголовок: Sergy пишет: на про..


Sergy пишет:

 цитата:
на простой и дубовый errorsys.prg из дистрибутива



Я чего то не могу найти его в дистрибутиве. Может по другому называется? Пробовал от Clipper прикомпоновать, но он не замещает почему то встроенный. Что для этого нужно сделать ? Мне по сути нужно лог ошибок сохранять.

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




Пост N: 5385
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.12.15 15:35. Заголовок: MIKHAIL пишет: Може..


MIKHAIL пишет:

 цитата:
Может по другому называется?


ERRSYS.PRG теперь

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





Пост N: 144
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 05.12.15 17:01. Заголовок: Где можно взять или ..


Где можно взять или приобрести Fastreport ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1178
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 05.12.15 17:13. Заголовок: MIKHAIL пишет: Где ..


MIKHAIL пишет:

 цитата:
Где можно взять или приобрести Fastreport ?


FastReport сделал Сергей Спирин, который несколько лет назад умер. Так что, видимо, купить уже негде.

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




Пост N: 5393
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.12.15 17:17. Заголовок: PSP пишет: Так что,..


PSP пишет:

 цитата:
Так что, видимо, купить уже негде


У нас на форуме еще есть добрые джентльмены , которые думаю поделятся бесплатно.

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



Пост 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

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





Пост N: 145
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 25.02.16 11:30. Заголовок: Какими средствами мо..


Какими средствами можно перехватывать все нажатия клавиш и экранного вывода в консольном приложении?

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




Пост N: 5487
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.02.16 11:40. Заголовок: MIKHAIL пишет: Каки..


MIKHAIL пишет:

 цитата:
Какими средствами можно перехватывать все нажатия клавиш


hb_gtInfo( HB_GTI_INKEYFILTER.....

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





Пост N: 149
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 25.03.16 11:39. Заголовок: Использую библиотеку..


Использую библиотеку FreeImage, все работало, добавил некоторые функции, Харбор их не видит:
fi_GetFIFFromFilename и fi_FIFSupportsReading
что нужно сделать ?

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





Пост N: 159
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 18.08.16 17:13. Заголовок: Можно ли в консольно..


Можно ли в консольной версии расширить палитру стандартных цветов?

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




Пост N: 5970
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.08.16 17:27. Заголовок: MIKHAIL Думаю нет (..


MIKHAIL
Думаю нет (ИМХО)

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





Пост N: 161
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 18.10.16 12:31. Заголовок: Как можно подключить..


Как можно подключить сторонюю библиотеку DLL ?
Пробовал hb_LibLoad("payCEB.dll") Она возвращает пустой результат, т.е. не загружается.
В описании библиотеки написано - Стандарт вызова функций: stdcall

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



Пост N: 193
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 18.10.16 13:04. Заголовок: Как то пробовал напр..


Как то пробовал напрямую включать dll в HBMK и все нормально собралось и отработало.

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




Пост 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


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





Пост 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 )


А эта функция возвращает ответ вызываемой функции?
И как обрабатывать ошибки?

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




Пост N: 6057
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.10.16 21:30. Заголовок: Да что то возвращает..

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



Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1297
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 01.04.17 21:46. Заголовок: Mitek пишет: Занялс..


Mitek пишет:

 цитата:
Занялся переносом на консольный xHarbour


А почему не Harbour?

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



Пост N: 3
Зарегистрирован: 01.04.17
ссылка на сообщение  Отправлено: 01.04.17 22:20. Заголовок: PSP пишет: А почему..


PSP пишет:

 цитата:
А почему не Harbour?

А собственно просто уже лет этак много 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>)

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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1298
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 02.04.17 09:37. Заголовок: В harbour есть библа..


В harbour есть библа hbct. Посмотрите.

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



Пост N: 4
Зарегистрирован: 01.04.17
ссылка на сообщение  Отправлено: 02.04.17 21:45. Заголовок: PSP Да смотрел я на ..


PSP Да смотрел я на эту библу еще пару лет назад и что . Нет там этих функций собственно так же как и в ее аналоге от xHarbour - CT.lib

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1299
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 03.04.17 12:43. Заголовок: А так уж эти функции..


А так уж эти функции все нужны? К примеру, NNet* предназначены для работы с Novell Netware. У вас используется сервер Novell Netware? Функция SPOOLACTIV - что-то связанное с печатью в DOS. Надо? Ну и т.д. Придется вам слегка код поправить.

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





Пост N: 164
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 29.04.17 19:39. Заголовок: совместимость индексов


Столкнулся с проблеммой. Перевел проект с Clipper 5.3 на Harbor 3.2 сервер NW + ADS7, пока отладка идет одновременно использую старую и новую версию программы. Обнаружил что индексы (ntx) по строке не корректно работают или не совместимы. Т.е. при создании индексов программой Clipper они не корректно отображаются в программе Harbora и с точностью наоборот. Странное дело, ведь индексы строит ADS. Длинна ключа в обеих случаях одинаковая. при этом DBFNTX драйвер работает корректно для обеих версий. Есть у кого мысли?

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




Пост N: 6399
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.04.17 15:39. Заголовок: MIKHAIL У меня была..


MIKHAIL
У меня была похожая связка под ADS 5.xx , индексы IDX , работало нормально.


PS
Изначально были какие то глюки (уже не помню подробности) , Павел тогда помог и что то переделал в RDDADS Harbour.

Dima пишет:

 цитата:
(уже не помню подробности)


Вроде связанное с кирилицей и 866 кодировкой

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





Пост N: 165
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 03.05.17 12:41. Заголовок: сборка


А есть какая то опция в компиляторе, что бы не весь проект заново собирался, а только измененные файлы? типа как в блинкере была инкрементальная сборка...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1306
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 03.05.17 12:45. Заголовок: MIKHAIL пишет: А ес..


MIKHAIL пишет:

 цитата:
А есть какая то опция в компиляторе, что бы не весь проект заново собирался, а только измененные файлы? типа как в блинкере была инкрементальная сборка...


hbmk2 имеет опцию -inc

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





Пост N: 166
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 04.05.17 12:39. Заголовок: Есть файл базы данны..


Есть файл базы данных товаров, порядка 100тыс. Как можно отследить что были изменены в ней определенные поля без полного сканирования ? Пробовал использовать время создания файла на диске, но видимо из за кэша, оно обновляется не сразу, если речь не идет о добавлении записей, dbcommit() не помагает.

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




Пост N: 6401
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.05.17 13:08. Заголовок: MIKHAIL можно ввест..


MIKHAIL
можно ввести еще одно поле TIMESTAMP и в случае изменения нужно поля писать в новое поле свежее значение

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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, заполняешь сам

и заполнять при изменении нужных тебе полей самостоятельно.


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





Пост N: 167
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 04.05.17 14:40. Заголовок: Andrey пишет: автом..


Andrey пишет:

 цитата:
автоматом само меняет значение при изменение любого поля записи.


это очень хороший вариант, если под NTX оно работает, проверю, спасибо!

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





Пост N: 168
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 08.05.17 08:16. Заголовок: Потребовалось пересо..


Потребовалось пересобрать DBU, у меня почему то нет патча для него DBU53.RTP, где его можно взять?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1456
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.05.17 09:06. Заголовок: Скачать архив См. e..


Скачать архив

См. extras\dbu

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5382
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.05.17 20:00. Заголовок: MIKHAIL пишет: это ..


MIKHAIL пишет:

 цитата:
это очень хороший вариант, если под NTX оно работает, проверю, спасибо!


Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер !

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





Пост 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 и тактов процессора для декомпрессии сжатых данных.

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





Пост N: 169
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 11.05.17 11:08. Заголовок: Петр пишет: См. ext..


Петр пишет:

 цитата:
См. extras\dbu


нету там DBU53.RTP
Скрытый текст


Andrey пишет:

 цитата:
Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер !



работает DBFNX под Харбором, не работает под Clipper и под ADSNTX

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1459
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.05.17 12:34. Заголовок: MIKHAIL пишет: нету..


MIKHAIL пишет:

 цитата:
нету там DBU53.RTP


Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется).

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





Пост N: 170
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 11.05.17 13:20. Заголовок: Петр пишет: Вот и я..


Петр пишет:

 цитата:
Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется).


Так как пропатчить файлы? Без патча у меня не собирается

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1460
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.05.17 13:55. Заголовок: Там описано (readme...


Там описано (readme.txt)

Gnu Path (binaries) найдете здесь

Затем выполните команду patch -lNi dbu53.dif
и дальше hbmk2 dbu.hbp

Все.

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





Пост 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 ===>


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост 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


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





Пост N: 172
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 22.05.17 16:31. Заголовок: Как можно установить..


Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ?
Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении, а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост 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 используется?


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





Пост 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 и предусмотреть соотв. обработку.



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





Пост N: 198
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 10.12.18 16:53. Заголовок: При объявлении перем..


При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1489
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.12.18 17:19. Заголовок: MIKHAIL пишет: При ..


MIKHAIL пишет:

 цитата:
При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ?


PUBLIC

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





Пост N: 199
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 10.12.18 19:41. Заголовок: PSP пишет: PUBLIC ..


PSP пишет:

 цитата:
PUBLIC


т.е. не реализовано GLOBAL ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1490
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.12.18 06:13. Заголовок: А где было реализова..


А где было реализовано GLOBAL? В Клиппере не было.

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




Пост N: 3816
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.12.18 07:53. Заголовок: Есть в xHarbour. Это..


Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1491
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.12.18 09:30. Заголовок: Pasha пишет: Есть в..


Pasha пишет:

 цитата:
Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет.


Понятно.

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





Пост N: 54
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 24.03.19 00:33. Заголовок: Перевожу на консольн..


Перевожу на консольный Harbour большое приложение из Clipper 5.2. В связи с этим пока 2 вопроса
1 Посоветуйте отладчик. Какой лучше?
2 В приложении на Clipper было реализовано что-то типа MsgBox (с различным количеством кнопок). Реализовано было через создание объектов для отображения кнопок с использованием малодокументированных функций Clipper. При запуске скомпилированного приложения выбивает ошибку. Подозреваю, что исполнение пошло по той ветке, которая и под клиппером не использовалась и не была отлажена. Не сильно хочется копаться в старом коде. Есть ли готовое решение аля MsgMox() для консольного варианта Harbour?

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





Пост 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. Какой вариант перспективнее с точки зрения поддержки со стороны разработчиков.

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





Пост 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

Было в Клиппере, есть и в Харборе.

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





Пост N: 56
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 24.03.19 03:40. Заголовок: Спасибо, :sm36: со..


Спасибо, совсем вылетело из головы. Очень редко пользовался.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6205
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.03.19 16:45. Заголовок: alexmar пишет: Наск..


alexmar пишет:

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


Смотря что переводить... Т.е. какая консольная задача и какой нужен перевод.
Я свою большую систему перевел за 4 года на МиниГуи.
Правда особо не торопился, да и времени мало было на эту работу.
Процесс очень трудоёмкий, нужно заново учиться под работу/понятия Винды и привыкать к новому стилю программирования.
Зато сейчас у меня в проге есть работа с базами Dbf, LetoDB и PostgreSQL.
Поддержка для МиниГуи на форуме в соседней ветке.
Не забываем материально поддерживать Григория за его работу !!!

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 818
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 24.03.19 17:11. Заголовок: Добавлю. Прежде пере..


Добавлю. Прежде перестроить мышление. Алгоритмы обработки можно , в основном, использовать старые.Но источники данных
если это формы , то все по-новому. Есть ещё целый ряд платных и бесплатных GUI. Я остановил свой выбор на МиниГуи - в нем есть дизайнер форм, наброс интерфейса форм,делаю в нем.

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





Пост N: 57
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 25.03.19 01:44. Заголовок: Спасибо за ответы. Е..


Спасибо за ответы.
Еще пару общих вопросов.
Сколько по вашим оценкам народу юзает Харбор, в мире и на просторах необъятной?
Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером?
ps
У меня были раньше попытки перетащить наработки с Клиппера. Пробовал Fivewin и CAVO. Но не было серьезных причин и соответственно стимулов. Все прекрасно работало, начиная с DOS и кончая Win10. Но всему приходит конец. Началось 64х разрядная эра. Клиенты покупают новые машины, а там уже стоит 64разрядная ось. И как-то некузяво заставлять их переходить на что-то другое или ставить что-то типа VMPayer. Поэтому воленс-неволенс я здесь.

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




Пост N: 3831
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.03.19 08:03. Заголовок: alexmar пишет: Ну и..


alexmar пишет:

 цитата:
Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером?



Харбору в этом году исполняется 20 лет. Как никак возраст. Столько не живут.
Поскольку это opensource проект, с ним в принципе не может случиться то же, что с клиппером. Никуда эта гора кода не денется. Если найдутся разработчики, которым интересно двигать его дальше - будет развиваться. Не найдутся - будет находиться в том же состоянии, плюс мелкие улучшения. Но в любом случае с opensource продуктом работать куда приятнее, всегда можно сделать что-то под себя.

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


Пост N: 1170
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.03.19 13:34. Заголовок: alexmar пишет: Что ..


alexmar пишет:

 цитата:
Что дальше, в смысле какие перспективы дальнейшего развития Харбор. Не случится ли с ним то же, что случилось с Клиппером?


Как написал уже Павел, разница в том, что Harbour - проект с открытыми исходниками - т.е., в отличие от Клиппера, всегда есть возможность его развивать. Конечно, может возникнуть ситуация, когда не окажется заинтересованных программистов достаточной квалификации, чтобы сделать какие-либо крупные изменения - адаптировать его для другой ОС, например. Более того, уверен, что когда-нибудь это случится.
Но подобное почти наверняка случится и с любым другим языком, кроме, может быть, С. И, даже, если вы решите перейти на С, вам придется использовать разнообразные готовые сторонние библитеки - для работы с конкретной БД, например. Но срок жизни любой библиотеки тоже ограничен сроком интереса к ней ее разработчиков. Как бывало не раз с любителями активно использовать сторонние компоненты для Delphi: часто при переходе на новую версию Delphi выясняется, что тот или иной компонент сторонний компонент больше не работает, а модернизировать его некому, и если он выполняет важные функции, то у вас проблемы.
Так что не беспокойтесь, все там будут). Но расширять кругозор и быть готовым к переменам надо всегда.

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





Пост N: 58
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 26.03.19 01:56. Заголовок: спасибо, ребята всем..


спасибо, ребята всем за разъяснение ситуации.
Сегодня удалось запустить свой проект, перекомпилированный в Харборе. Приятно удивила скорость. Осталось выловить все баги несовместимости, которые конечно повылазят.
Первое, что увидел это то, что Харбор переиндексировал индексные файлы, оставшиеся от клиппера (использую ntx или idx) Возникли вопросы
1 Индексы несовместимы с клипперовскими?
2 Клиппер и харбор могут юзать одни и те же индексы? Раздельно или совместно.
3 Вопрос по поводу 866 страницы в исходниках. В программе все отображается нормально, а вот кирилические символы в исходниках под дебагером - кракозябры. Есть ли какое-то решение вопроса?

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





Пост N: 385
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 26.03.19 08:26. Заголовок: 1 Не совместимы, 2 н..


1 Не совместимы, 2 не могут

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




Пост N: 3832
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.19 08:37. Заголовок: 3. Дебаггер - это та..


3. Дебаггер - это такое же выполнение харбор-кода, как и основной программы.
Дебаггер узнает о cp866 только после отработки hb_CdpSelect
Возможно, еще надо выдать команду:
hb_SetTermCP( "RU866" )

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



Пост N: 215
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 26.03.19 09:41. Заголовок: 1) О несовместимости..


1) О несовместимости. У нас некоторые базы индексируются DBU и далее
с ними работают программы на HARBOUR в режиме корректировки
после этого с этими же базами в некоторых случаях рабjтают с DBU .
Нареканий вроде не было. Индексы NTX.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 352
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 26.03.19 11:24. Заголовок: alexmar пишет: Ну и..


alexmar пишет:

 цитата:
Ну и сакраментальный вопрос. Что дальше, в смысле какие перспективы дальнейшего развития Харбор


Да практически никаких. Харбор есть, а перспектив нет. Очень мало ,кто пишет.

alkresin пишет:

 цитата:
Конечно, может возникнуть ситуация, когда не окажется заинтересованных программистов достаточной квалификации, чтобы сделать какие-либо крупные изменения - адаптировать его для другой ОС, например. Более того, уверен, что когда-нибудь это случится.



Уже случилось :) Харбор собран практически для всех платформ. Во всяком случае для FW это линукс, андроид, мак и что-там еще.. Не помню :)
alkresin пишет:

 цитата:
Но расширять кругозор и быть готовым к переменам надо всегда.


Очень правильно и точно

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





Пост N: 59
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 26.03.19 22:44. Заголовок: nick_mi пишет: О н..


nick_mi пишет:

 цитата:
О несовместимости. У нас некоторые базы индексируются DBU и далее
с ними работают программы на HARBOUR в режиме корректировки
после этого с этими же базами в некоторых случаях рабjтают с DBU .
Нареканий вроде не было. Индексы NTX.

Вот и я в этой ветке здесь увидел обсуждение схожей проблемы правда применительно к связке сервер NW + ADS7. Так и не понятно к какому выводу пришли. Возможно, что это баг с моей стороны (я перед открытием индексов делаю кое-какие дополнительные проверки на предмет необходимости переиндексации) Буду курить сырцы дальше.

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





Пост N: 60
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 26.03.19 22:47. Заголовок: ММК пишет: Да практ..


ММК пишет:

 цитата:
Да практически никаких. Харбор есть, а перспектив нет. Очень мало ,кто пишет.

А можно уточнить "мало" относится к разработчикам Харбор или к пишущим на нем?

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





Пост N: 61
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 26.03.19 22:55. Заголовок: 2 alkresin Пользуюсь..


2 alkresin Пользуюсь hwgdebug.exe. Классная вещь. Заметил один глюк. При задании пути к исходникам в поле ввода не получается ввести более одного символа. Может что-то я не так делаю, но пришлось пути вписывать ручками в в hwgdebug.xml
И спасибо за все, что вы делаете

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



Пост N: 216
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 27.03.19 09:52. Заголовок: В HARBOUR нет встрое..


В HARBOUR нет встроенного механизма проверки индексов и автоматического
запуска индексации.

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




Пост N: 3833
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.03.19 10:10. Заголовок: alexmar пишет: 1 Ин..


alexmar пишет:

 цитата:
1 Индексы несовместимы с клипперовскими?



Теоретически формат индексов одинаков. Но на практике лучше избегать совместной работы приложений на клиппере и харборе с одним индексом.
Особенно это касается операций обновления индекса. Есть несколько схем блокировки индекса при обновлении, и не факт, что разнотипные приложения будут использовать одну и туже схему, так что индекс могут запортить.
При установке харбор-приложений лучше все индексы перестроить.
Ну и при совместной работе с БД по сети лучше всего использовать клиент-сервер, он как раз есть для харбора - это letodb. При этом достигается совсем другой уровень надежности, стабильности, да и производительности. Но это уже совсем отдельный вопрос.

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





Пост N: 62
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 28.03.19 00:51. Заголовок: Спасибо, буду иметь ..


Спасибо, буду иметь ввиду.

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


Пост N: 1171
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.03.19 08:53. Заголовок: alexmar пишет: Поль..


alexmar пишет:

 цитата:
Пользуюсь hwgdebug.exe. Классная вещь. Заметил один глюк. При задании пути к исходникам в поле ввода не получается ввести более одного символа


Исправлю.

 цитата:
А можно уточнить "мало" относится к разработчикам Харбор или к пишущим на нем?


И к тем, и к другим. Из основных разработчиков появляется сейчас иногда только один, Przemyslaw Czerpak. Из тех, кто делает правки помельче - человек, наверное, около пяти. Что касается пишущих - вопрос сложнее, не все ведь проявляют активность в сети, большая часть - это обычно "молчуны".
Языков сейчас множество, и чтобы привлечь внимание, нужно что-то особенное. Существенную, иногда определяющую роль игоает мода, хайп. Большое значение имеет и компания, стоящая за языком/рлатформой. .NET, например, взлетел в свое время именно потому, что его продвигал MS, хотя реально в топе сейчас из всех языков этой платформы только C#.

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





Пост N: 63
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 02.10.19 02:48. Заголовок: Доброе время суток В..


Доброе время суток
Возник вопрос
Как включить в Harbour поддержку индексов idx (без ADS) ? В программе я делаю установку RDD по умолчанию через вызов DBSetDriver("SIXCDX")
В Clipper 5.2e при выполнении индексации через DbCreateIndex создавались файлы idx, а в Harbour создаются cdx

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




Пост N: 7103
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.10.19 08:24. Заголовок: alexmar пишет: Как ..


alexmar пишет:

 цитата:
Как включить в Harbour поддержку индексов idx (без ADS) ?


Скорее всего ни как

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





Пост N: 64
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 02.10.19 14:40. Заголовок: Таки получилось. Ока..


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

И попутно еще вопрос. Перевожу с Clipper 5.2e на консольный харбор группу программ, которые пересекаются по нескольким dbf-файлам. Я так понимаю, что из-за несовместимости индексов нужно сразу менять все программы. Интересует:
1 Есть ли какой-нибудь другой вариант чтобы на каком-то временном отрезке работали и клипперные и харборовские программы.
2 По какому типу индекса (NTX, IDX, CDX) бОльшая совместимость между Clipper 5.2e и Harbour?

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




Пост N: 7104
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.10.19 16:40. Заголовок: alexmar пишет: Оказ..


alexmar пишет:

 цитата:
Оказывается нужно было при вызове DbCreateIndex указывать в явном виде имя индексного файла и расширение.


Шаманство какое то
Придется так же при открытии индексов к базам , расширение указывать явно.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6459
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.10.19 16:50. Заголовок: alexmar пишет: 2 По..


alexmar пишет:

 цитата:
2 По какому типу индекса (NTX, IDX, CDX) бОльшая совместимость между Clipper 5.2e и Harbour?


Я работал раньше с CDX-драйвером. Работало нормально тогда.
Но это давно было и использовал хХарбор терминалку.
хХарборовская терминалка до сих пор отлично пашет даже на слабых компах.

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



Пост N: 219
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 03.10.19 10:32. Заголовок: У нас работают задач..


У нас работают задачи как CLIPPER так и HARBOUR одновременно
с одними и теми же базами. Переиндексацию часто делают в DBU
проблем не замечалось. Индексы NTX.
Harbour 3.2.0dev (r1601261444)
Clipper 5.3

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





Пост 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 кодировку пока не хочется

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



Пост N: 220
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 09.10.19 08:32. Заголовок: Возможно, в самом де..


Возможно, в самом дебагере не предусмотрен русский язык и
надо его пересобрать .

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



Пост N: 221
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 09.10.19 08:57. Заголовок: Был неправ. Обычный ..


Был неправ. Обычный терминальный дебагер начал корректно отображать
кириллицу после HB_CDPSELECT ('RU866')

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





Пост N: 229
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 09.10.19 15:49. Заголовок: nick_mi пишет: Обыч..


nick_mi пишет:

 цитата:
Обычный терминальный дебагер начал корректно отображать
кириллицу после HB_CDPSELECT ('RU866')


А где взять и как подключить дебагер ?

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



Пост N: 222
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 09.10.19 16:00. Заголовок: Параметр -b в ваше..


Параметр -b в вашем.hbp файле для сборки программы

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





Пост N: 230
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 09.10.19 16:39. Заголовок: nick_mi пишет: Пара..


nick_mi пишет:

 цитата:
Параметр -b в вашем.hbp файле для сборки программы


не требует библиотек и вызывается стандартно AltD ?

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





Пост N: 67
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 09.10.19 17:14. Заголовок: nick_mi пишет: Возм..


nick_mi пишет:

 цитата:
Возможно, в самом дебагере не предусмотрен русский язык и
надо его пересобрать .

Скорее всего так и есть
nick_mi пишет:

 цитата:
Был неправ. Обычный терминальный дебагер начал корректно отображать
кириллицу после HB_CDPSELECT ('RU866')

Наверно вы пользуете стандартный дебагер, а у меня дебагер от alkresin и вызов HB_CDPSELECT ('RU866') не помогает

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





Пост N: 69
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 09.10.19 17:56. Заголовок: Где-то натыкался в ф..


Где-то натыкался в форуме, а сейчас не могу найти...
Как запретить DBUseArea при открытии dbf одновременно открывать одноименный индексный файл

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




Пост N: 7107
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.10.19 18:21. Заголовок: SET AUTOPEN OFF..


SET AUTOPEN OFF

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





Пост N: 70
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 09.10.19 22:25. Заголовок: спасибо :sm36:..


спасибо

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



Пост N: 223
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 11.10.19 08:34. Заголовок: alexmar пишет: а у ..


alexmar пишет:

 цитата:
а у меня дебагер от alkresin и вызов HB_CDPSELECT ('RU866') не помогает


Да, дебагер от Кресина я пересобирал, что-бы там правильно отражалась кирилица

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





Пост N: 71
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 12.10.19 00:43. Заголовок: а что там нужно подп..


а что там нужно подправить?

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



Пост N: 224
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 16.10.19 21:22. Заголовок: Потерялся корректиро..


Потерялся корректированный исходник дебагера, печалька.
Завтра попытаюсь вспомнить, где правил. Там исходный текст
просто конвертил через OemToAnsi, большего не помню

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



Пост 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 переменные и вставлять логику

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





Пост N: 72
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 17.10.19 22:39. Заголовок: спасибо :sm36:..


спасибо

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





Пост 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?

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




Пост 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
или более раннюю версию

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





Пост N: 240
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 24.10.19 09:20. Заголовок: alexmar пишет: memo..


alexmar пишет:

 цитата:
memo полями в формате fpt, которые ntx не поддерживают


конвертни в dbt

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





Пост N: 74
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 24.10.19 12:54. Заголовок: 2MIKHAIL Я в свое вр..


2MIKHAIL Я в свое время спецом конвертнул их в fpt из-за постоянно возникающих ошибок переполнения счетчика количества блоков

Dima пишет:

 цитата:

... тянем
Advantage Client Engine
Advantage Clipper RDD
или более раннюю версию

а Advantage Database Server разве не нужен?

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




Пост N: 7131
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.10.19 13:36. Заголовок: alexmar пишет: Adv..


alexmar пишет:

 цитата:
Advantage Database Server разве не нужен


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

PS
я тупанул , для локального тож надо качнуть Advantage Database Server

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





Пост N: 76
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 12.02.21 16:39. Заголовок: Такой вопрос. Имеетс..


Такой вопрос. Имеется dbf файл с мемо файлом. Как определить с каким типом файла dbt или fpt открывается dbf файл, если в папке, где лежит dbf, лежат оба мемо-файла?

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




Пост N: 3998
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.02.21 17:57. Заголовок: Тип мемо однозначно ..


Тип мемо однозначно определяется по сигнатуре, 1-му байту dbf
Если там 0x83 - то dbt, если 0xF5 или 0x30 - fpt

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3562
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.21 18:25. Заголовок: Pasha пишет Тип мемо..


Pasha пишет
 цитата:
Тип мемо однозначно определяется по сигнатуре


После USE можно и так
? dbinfo(DBI_MEMOEXT)

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





Пост N: 77
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 10.03.21 10:01. Заголовок: Привет всем Есть иде..


Привет всем
Есть идеи как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе?
Программы построены на вызовах из меню. Меню динамическое, основанное на dbf-файле. Т.е. из самой программы можно изменять меню, подключая или отключая функционал. По поводу меню у меня 2 варианта:
1. Дублирование полей, привязанных к языку
2. Добавление в dbf файл меню мемо полей, содержащих локализованные названия и т.д
Пока не решил какой вариант лучше. Может есть еще какие-то варианты?
Браузер и средства для редактирования записей реализованы через текстовые вспомогательные файлы, в которых описаны названия колонок и полей в режиме редактирования. Т.е. для работы с браузером достаточно перевести эти файлы.
Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3594
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.21 10:16. Заголовок: alexmar пишет как ор..


alexmar пишет
 цитата:
как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе?


Посмотрите исходники hbedit http://www.kresin.ru/hbedit.html

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1596
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.03.21 11:00. Заголовок: alexmar пишет: Осно..


alexmar пишет:

 цитата:
Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере?


Harbour поддерживает i18n "из коробки".
Хорошим примером могут могут послужить исходники hbmk2

Поищите на этом форуме, я что-то также писал на эту тему.

Harbour & i18n в примерах

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост 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 )
...


Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3596
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.21 12:17. Заголовок: УПС. В текстах было ..


УПС. В текстах было [ i ] без пробелов, исказилось, но суть понятна должна быть.
Поиск RU866 в *.prg hbedit все выдаст

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3597
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.21 12:29. Заголовок: PS С dbf, если все п..


PS
С dbf, если все поля в нем в одной кодировке, при открытии указывайте CP, тогда в установленную кодировку hb_cdpSelect( cp ) будет переводить hb, если поля в разных кодировках, не указывайте CP при открытии, но уст. этот CP (программы) при чтении\записи. Др. языки из полей читайте в переменные и при выводе ставьте нужный CP с возвратом потом

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





Пост N: 78
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 10.03.21 13:42. Заголовок: Всем огромное спасиб..


Всем огромное спасибо. Пошел изучать матчасть Появятся вопросы, буду здесь отписываться

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





Пост 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.

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




Пост N: 7286
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.21 08:36. Заголовок: Может тут http://hmg..

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





Пост N: 80
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 11.03.21 08:38. Заголовок: спасибо :sm36:..


спасибо

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 (базовый вариант в ресурсах программы) Скрытый текст

в коде текст достается ф-ей _gTxt("ключ", ...) в параметрах можно указать варианты окончания и секцию подмены от установл. default

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




Пост N: 4009
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.21 09:43. Заголовок: SergKis пишет: Т.к...


SergKis пишет:

 цитата:
Т.к. мы страдаем с языками со времен clipper



Хотя наши страдания с языками уже закончились, вспоминаю времена, когда эти страдания еще были...
Возвращаясь к исходному вопросу. Проще всего идти по п.1: добавить в dbf локализованные поля: Name/NameU. Я так и делал

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





Пост N: 81
Зарегистрирован: 25.07.06
ссылка на сообщение  Отправлено: 11.03.21 09:49. Заголовок: alexmar пишет: Т.к...


SergKis пишет:

 цитата:
Т.к. мы страдаем с языками со времен clipper и похожую схему выборки текстов для перевода делали еще в 90х ... Удобнее оказалось сразу делать текст в ini.RU, ini.LV, ini.EN с секциями


Т.е вариант локализации с ini-файлами использовали еще в Clipper? А вместо _gTxt() что использовали?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 установки
подкл. тот или иной язык.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост 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

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1599
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.03.21 10:52. Заголовок: SergKis пишет: Но п..


SergKis пишет:

 цитата:
Но по мне это не совсем удобная штука, т.к. варианты текстов (окончания) могут форм. динамически, часто тексты привязаны к окнам и таблицам и выбранное кучей в .pot файлы - офигенная работа для разбора всего.


Все это предусмотрено до/для нас.


P.S. И кстати редакторы po/pot файлов f.e. poedit - удобнейшая вещь.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост 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? кроме тех, которые пересобирали сами

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




Пост N: 4010
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.21 20:14. Заголовок: А что это за кодиров..


А что это за кодировка, LV866 ? Это cp866 с дополнительными латышскими символами на месте псевдографики ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3605
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.21 20:30. Заголовок: Pasha пишет Это cp86..


Pasha пишет
 цитата:
Это cp866 с дополнительными латышскими символами на месте псевдографики ?


Да это RU866 с лат. символами вместо псевдографики, в dos cp была факт. стандартом, пока потом не разделили на 755, 1257

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

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