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





Пост N: 4
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 13:45. Заголовок: Перевожу Clipper-овский проект в Harbour


Добрый день, господа.
Начал переводить проект с CLIPPERa(5.2Е) в Harbour и сразу же столкнулся с проблемой:
undefined reference to `HB_FUN_TOKEN' ... и т.д.

Пользуюсь инструкцией "Harbour - шаг за шагом" Александра Кресина, т.е. использую версию "harbour-3.0.0-win.exe".

Поискал здесь на форуме похожую ситуацию. Нашел здесь: "unresolved external _HB_FUN_", но похоже не мой случай, до линковки дело еще не доходит.

Куда копать? Подскажите, пожалуйста.


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







Пост N: 5
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 13:48. Заголовок: Сори, забыл сказать,..


Сори, забыл сказать, для сборки использую hbmk2.

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




Пост N: 4538
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.10.15 14:09. Заголовок: Попробуй это - «Пере..


Попробуй это - «Перенос проекта с Clipper на xHarbour.pdf» https://cloud.mail.ru/public/2KnU/oT4KEHY8i

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


Пост N: 1166
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.10.15 14:21. Заголовок: mikeas, TOKEN() - эт..


mikeas, TOKEN() - это функция из Clipper Tools. Попробуйте указать явно использование библиотеки hbct

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





Пост N: 6
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 14:26. Заголовок: Здравствуйте, Андрей..


Здравствуйте, Андрей.
Спасибо за оперативный ответ.

DBU и прочие Клипперовские утилиты у меня собираются и работают хорошо.
А как только взялся за головной модуль проекта, сразу получил проблему.
Не хотелось бы переключаться на ходу HB <>xHB. Вроде определился, перехожу на Harbour.

Да и проблема моя, наверняка кому-то встречалась. М.б. я какие то INCLUDы не упомянул?
Все эти undefined reference to `HB_FUN_... получаются из-за использования функций CTLIB. Но вроде в Харборе такая бублиотека есть. И ссылки на "HB_FUN_..." сделал сам компилятор. Что ж дальше то не пошел?

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





Пост N: 7
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 14:34. Заголовок: PSP, спасибо, похоже..


PSP, спасибо, похоже на то.
К моему стыду, не знаю как сослаться явно на CTLIB, а перечислять все функии EXTERNAL из CTLIB наверно будет не правильно, вдруг что забуду :)
Буду копать.

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




Пост N: 4539
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.10.15 14:37. Заголовок: Просто на хХарбор пе..


Просто на хХарбор перейти быстрей у меня получилось, да и сейчас это сделать просто.
А вот переход на Харбор для новичков - проблема.
Может сделать пока переход на хХарбор, а уже потом, набрав опыта, можно переходить на Харбор.
Но это решает уже каждый сам.
У меня терминалки до сих пор на хХарборе. Уже лет 9-10 (не помню точно).
В принципе никакой разницы (для новичков) между хХарбором и Харбором нет.

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





Пост N: 8
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 15:02. Заголовок: Андрей, может и прид..


Андрей, может и придется обратиться к хХарбору, если упрусь в стену. Но обидна в самом начале "менять лошадей" :)

Вставил строку "EXTERNAL token" не помогает.
Вставил "-LC:\hb30\lib\win\mingw\libhbct" в вызов hbmk2, тоже без результатов :(

И еще, почему то, Hbmk2 не весь протокол по ... -trace >log.txt выводит в файл.
Часть выводится на консоль и улетает вверх безвозвратно :) Вижу только последние:
ndefined reference to `HB_FUN_RELC'
undefined reference to `HB_FUN_POSREPL'
undefined reference to `HB_FUN_MSGSEL'
undefined reference to `HB_FUN_BOXSHADOW'
undefined reference to `HB_FUN_TOKEN'
undefined reference to `HB_FUN_BOXSHADOW'
collect2: ld returned 1 exit status
hbmk2: Error: Running linker. 1



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




Пост N: 5308
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.15 15:30. Заголовок: mikeas пишет: Встав..


mikeas пишет:

 цитата:
Вставил "-LC:\hb30\lib\win\mingw\libhbct"



-LC:\hb30\lib\win\mingw\hbct.hbc

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




Пост N: 4540
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.10.15 15:33. Заголовок: mikeas пишет: C: ..


mikeas пишет:

 цитата:
C:\hb30\lib\win\mingw\libhbct


А зачем делать сразу на MinGw ? Это тормоза при сборке.
Для тестирования и работы терминалки лучше BCC, быстрей всё собирается.

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



Пост N: 152
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 15:34. Заголовок: hbmk2 использует hbc hbp ( если найдет)


Покажите Ваши hbmk2-файлы проекта - .bat(cmd) .hbp .hbc
в hbc обычно достаточно указать что-то вида
...
# Harbour contribs
{win}libs=hbmzip
{win}libs=hbwin.lib hbct.lib hbnf.lib hbrtl.lib
{win}libs=hbhpdf.lib libhpdf.lib libpng.lib
{win}libs=hbtip.lib hbmisc.lib
...
или в hbp ( без .hbc)
..
# libs
-liphlpapi
-lxhb
-lhbxpp
-lhbmzip
-lhbwin
-lhbct
-lhbnf
-lhbhpdf
...




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




Пост N: 5309
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.15 15:38. Заголовок: Andrey пишет: А зач..


Andrey пишет:

 цитата:
А зачем делать сразу на MinGw ? Это тормоза при сборке.


Если нормальный комп , нет тормозов.

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





Пост N: 9
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 15:41. Заголовок: Спасибо, Dima. Но, у..


Спасибо, Dima.
Но, увы "не выходит каменный цветок" :) Тот же отрицательный результат.
Да и по указанному пути нет тактго файла: hbct.hbc Все файлы здесь: C:\hb30\lib\win\mingw\
имеют расширение .a и начинаются на "LIB..."

М.б. я не тот Харбор осваиваю(версия 3.0) и слудует взять чтото поновее?
Готовый собранный новее не нашел.
Чесно говоря надеялся, что сразу "заведется". Никакой экзотики не использую или еще не дошел до реальных проблем.



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




Пост N: 5310
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.15 15:43. Заголовок: mikeas пишет: Да и ..


mikeas пишет:

 цитата:
Да и по указанному пути нет тактго файла: hbct.hbc


тогда просто не указывай расширение
вот так
-LC:\hb30\lib\win\mingw\hbct

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





Пост N: 10
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 15:49. Заголовок: Всем спасибо за учас..


Всем спасибо за участие! Думал ко вторнику что нибудь получу :)
Вот bldhb.bat:
set path=c:\hb30\bin;c:\hb30\comp\mingw\bin
hbmk2 calc.prg -LC:\hb30\lib\win\mingw\hbct.hbc -trace >log
calc.prg - головной модуль.

Пользуюсь инструкцией "Harbour - шаг за шагом" Александра Кресина, т.е. использую версию "harbour-3.0.0-win.exe".



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





Пост N: 11
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 15:54. Заголовок: Dima, так нет такой ..


Dima, так нет такой библиотеки "hbct" по указанному адресу, там все файлы формата lib... .a

М.б. сильно устаревший Харбор юзаю? Чем заменить?


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




Пост N: 5311
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.15 15:55. Заголовок: mikeas Там должен б..


mikeas
Там должен быть файл libhbct.a но при сборке указывать надо hbct

PS
Тоже сижу на MINGW

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


Пост N: 1167
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.10.15 15:59. Заголовок: 1. Ключ подключения ..


1. Ключ подключения библы -l ("л" маленькая). -L - для указания пути к библиотекам
2. Не lib, не .a для mingw не указываются
3. Свежий Харбор здесь: https://harbour.github.io/ Скачайте Nightly binary


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



Пост N: 153
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 16:02. Заголовок: Пример проекта с CALC.HBP



= = =bat= =
set HB_PLATFORM=win
set HB_ROOT=C:\hb30
set HB_BIN_INSTALL=C:\hb30\bin
set path=%HB_ROOT%\bin;C:\hb30\comp\mingw\bin;%path%
%HB_ROOT%\bin\hbmk2.exe CALC.hbp -oCALC.EXE 1> build_CALC.log 2>error_CALC.log

Логи в BUILD_CALC.LOG ERROR_CALC.LOG
= = CALC.HBP = =
..
-info
-trace
...
-std
#-gtstd
#-gtwvt
..


# compile options
#-m
#-n
#-es0
-w0
#-mt
..


..
# libs
-lhbwin
-lhbct
..
#hbc
hbct.hbc
..
#source
CALC.PRG





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





Пост N: 12
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 17:24. Заголовок: Dima, PSP, задал hb..


Dima, PSP, задал hbct(без lib и .a), не находит файла:
C:\hb_tst\calc\PRG>hbmk2 calc.prg -lC:\hb30\lib\win\mingw\hbct -trace 1>log
gcc.exe: C:/hb30/lib/win/mingw/hbct: No such file or directory
hbmk2: Error: Running linker. 1

petr707, в разделе # libs нужно указать все библиотеки из C:\hb30\lib\win\mingw ?
или только проблемную? Что за раздел #hbc и что содержит hbct.hbc ?


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




Пост N: 5313
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.15 17:31. Заголовок: mikeas а есть вообщ..


mikeas
а есть вообще файл libhbct.a ?

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


Пост N: 1168
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.10.15 17:59. Заголовок: mikeas, скачайте све..


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

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



Пост N: 154
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 18:22. Заголовок: hbc раздел в hbp


Перечисляет библиотеки в папке ..\CONTRIB\
hbmk2 будет искать и найдет , в частности, файл C:\hb30\contrib\hbct\hbct.hbc
с описанием, где брать библиотеку HBCT
= = = =
#
# $Id: hbct.hbc 16259 2011-02-09 15:58:45Z vszakats $
#

incpaths=.

libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF}


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





Пост N: 13
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 18:23. Заголовок: Внимательно всмотрел..


Внимательно всмотрелся в сообщения об ошибках. Увидел там имена и своих модулей.
Решил, что надо собрать весь проект, "пусть он развалится" :)
Сейчас занимаюсь устранением клипперовских безобразий/безалаберностей :)
Их много. Это печалит.
Как устраню, опять вас помучаю.

Спасибо всем! Искренне рад, что не в одиночестве вожусь!

И таки да, файл libhbct.a на месте. Свежий билд скачал.

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



Пост N: 155
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 18:25. Заголовок: есть C:\hb30\lib\win\mingw\libhbct.a - размещение


есть C:\hb30\lib\win\mingw\libhbct.a - размещение

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





Пост N: 14
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 20:40. Заголовок: petr707, не понял, В..


petr707, не понял, Вашу фразу: "есть C:\hb30\lib\win\mingw\libhbct.a - размещение"
поясните, пожалуйста.

1) Поправил неряшливости Клиппера
2) Поправил .bat и .hbp файлы по совету petr707
Кол-во ошибок уменьшилось до 11 штук!
Похоже таких функций в Харборовской CTLIB действительно нет:
`HB_FUN_CSETALL'
`HB_FUN_DISKFREE'
`HB_FUN_SPLITV'
`HB_FUN_FILECHECK' разбираюсь с ними.



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



Пост N: 156
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 21.10.15 07:07. Заголовок: Новые/старые функции


1) Можно найти аналоги функций или близкие, например
FUNction DISKFREE(cDrive)
return hb_DiskSpace(cDrive,1)

FUNction DISKTOTAL(cDrive)
return hb_DiskSpace(cDrive,3)

или поставить временные заглушки , например
Function filecheck()
return 1

2) Фраза про "размещение" - это просто ссылка на пусть к файлу этой библиотеки ( при стандартной инсталляции hrb 3.0)

3) Подтверждаю, что лучше сразу использовать текущий harbour 3.2.0dev , чем стабильный 3.0.0. Не придется переделывать потом.
hbmk2 от 3.2 много чего больше умеет, чем hbmk2 от 3.0 и много другое чего продвинуто


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





Пост N: 15
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 10:09. Заголовок: petr707, спасибо. Та..


petr707, спасибо. Так и сделаю.
Вопрос: а где Вы берете описания функций? Что-то не нашел :(
В Mingui нашел файл: "(x)harbour.chm", но не уверен в достоверности описания, например DISKFREE() там есть.

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



Пост N: 157
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 21.10.15 10:56. Заголовок: Описания функций


Источников много, в том числе и здесь на форуме click here
Можно смотреть в инсталляции C:\harbour\ChangeLog.txt , C:\harbour\doc\
Можно использовать в hrb3.2.0dev hbmk2.exe -find xxxxx


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





Пост N: 16
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 17:59. Заголовок: Ура! Подчистил, собр..


Ура!
Подчистил, собрал, запустил. Работает!!! Но, пока частично :(

Подводит клипперовская свобода. Оказывается в Харборе параметры процедур LOCAL, а в Клиппере PRIVATE, например:
procedure poisk(p1)
p1:=IIF(p1=NIL,"par1",p1)
PRIV p2:="par2"

MyBrowse( p2 )

RETURN

FUNCTION MyBrowse( oBrowse )

? "oBrowse=", oBrowse
? "p1=", p1

RETURN NIL

Харбор выдает ошибку:
Error BASE/1003 Variable does not exist: P1

В Клиппере такое прокатывало.

Нет ли в Компиляторе Харбора какого переключателя, чтобы считать параметры PRIVATE?

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




Пост N: 5315
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.10.15 18:10. Заголовок: Параметры процедур и..


Параметры процедур и в Clipper локальные.
Нужны Private используем , PARAMETERS

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





Пост N: 17
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 18:25. Заголовок: О, нашел выход. Не к..


О, нашел выход. Не красивый, но очень полезный. Вот так срабатывает в Харборе:

procedure poisk()
PARAM p1
p1:=IIF(p1=NIL,"par1",p1)
PRIV p2:="par2"

MyBrowse( p2 )

RETURN

FUNCTION MyBrowse( oBrowse )

? "oBrowse=", oBrowse
? "p1=", p1

RETURN NIL


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





Пост N: 18
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 18:28. Заголовок: Да, точно. Многие мо..


Да, точно. Многие модули у мня были без заголовков PROC/FUNC.
Повставлял заголовки, ну и втиснул туда параметры не думая о последствиях.
Придется заново лопатить все :(

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




Пост N: 5316
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.10.15 18:28. Заголовок: mikeas пишет: О, на..


mikeas пишет:

 цитата:
О, нашел выход.


я об этом выше и писал :)

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





Пост N: 19
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 08:50. Заголовок: Да, Dima, Вы правы. ..


Да, Dima, Вы правы. Это я не внимательный :(

Обнаружил очередную проблему: не работает SET SCOPE ! (Я использую SIXCDX, так исторически сложилось, но похоже в Харборе SIX кривой :( )
Поискал на сайте. Нашел аналогичную проблему, которую описывал wad1 в 2009 году.
Решение: полный отказ от SIX.

Придется все перепахивать на предмет замены SIX-функций "sx_..." на аналоги.
Жаль. Финиш был так близок :)

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




Пост N: 5318
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 09:31. Заголовок: mikeas пишет: Обнар..


mikeas пишет:

 цитата:
Обнаружил очередную проблему: не работает SET SCOPE


а так
#include "dbinfo.ch"
dbOrderInfo(DBOI_SCOPETOP........
dbOrderInfo(DBOI_SCOPEBOTTOM....


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





Пост N: 20
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 10:00. Заголовок: Dima, сори, не понял..


Dima, сори, не понял. Мне не знакомы эти Харбор-функции.
Надеюсь если отключить SIXCDX повсеместно в проекте и подключить RDDCDX, то все SCOPe-ы заработают. Или нет?
Мне только останется заменить явные вызову SIX-функций на их аналоги. Вот в этом возни много будет.
Или м.б. с SIXCDX можно что-то переключить, чтобы SCOPE выполнялись?

Вся суть проблемы: минимизировать исправления исходного кода.

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




Пост N: 5319
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 10:03. Заголовок: mikeas я бы провери..


mikeas
я бы проверил на простом примере для начала SCOPE c SIXCDX (сомневаюсь что он глючный)
а на другом тоже самое с DBFCDX

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





Пост N: 21
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 10:20. Заголовок: Это разумно, сейчас ..


Это разумно, сейчас попробую.

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




Пост N: 5320
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 10:33. Заголовок: mikeas Поздно )) ..


mikeas
Поздно ))

 
#include "dbinfo.ch"
#include "hbsix.ch"

Proc main
Local el
Request SIXCDX

dbcreate("testsix",;
{{"ndok","n",5,0}},"SIXCDX",.t.,"testsix")
index on ndok tag test

for each el in {1,1,2,2,3,3}
testsix->(dbappend())
testsix->ndok:=el
next


testsix->(dbgotop())
testsix->(browse())

testsix->(dbOrderInfo(DBOI_SCOPETOP,,,3))
testsix->(dbOrderInfo(DBOI_SCOPEBOTTOM,,,3))


// так не работает
//testsix->(sx_setscope(0,3))
//testsix->(sx_setscope(1,3))

testsix->(dbgotop())
testsix->(browse())
return


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





Пост N: 22
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 12:35. Заголовок: Dima, спасибо. Я тож..


Dima, спасибо. Я тоже убедился, что SIX не работает на своем примере. Убираю его нафиг. Перехожу на DBFCDX.

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





Пост N: 23
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 12:53. Заголовок: Еще обнаружил такой ..


Еще обнаружил такой эффект: оказывается если установить SCOPE без SIXа, то
фунуции SIXа:
sx_keyno() - тек.номер записи в индексе и
sx_keycount()-кол-во записей в индексе
показывают правильные числа с учетом установленного SCOPE.
Т.е. можно рискнуть и функции SIXа(хотя бы эти) не переназначать! И это радует :)

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




Пост N: 5321
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 13:05. Заголовок: mikeas пишет: sx_ke..


mikeas пишет:

 цитата:
sx_keyno() - тек.номер записи в индексе и
sx_keycount()-кол-во записей в индексе


это все есть в DBFCDX

DbOrderInfo(DBOI_KEYCOUNT)
DbOrderInfo(DBOI_KEYNO)

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





Пост N: 24
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 15:35. Заголовок: Очередная засада: не..


Очередная засада:
не срабатывает команда KEYBOARD <cSTRING> внутри GETа.
Пока не знаю что и предпринять :(
М.б. у кого была такая же беда, сориентируйте, плиз.

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



Пост N: 109
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 22.10.15 15:58. Заголовок: mikeas , пример кода..


mikeas , пример кода покажите. В каком смысле "внутри" ?

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




Пост N: 5322
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 16:06. Заголовок: mikeas пишет: не ср..


mikeas пишет:

 цитата:
не срабатывает команда KEYBOARD <cSTRING>


пробни Hb_keyins

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



Пост N: 158
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 22.10.15 16:45. Заголовок: HB_KEYPUT - тоже можно


HB_KEYPUT - тоже можно

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





Пост N: 25
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 18:33. Заголовок: Оказалось дело не в ..


Оказалось дело не в KEYBOARDe. Привожу ниже пример.
В функции HELP заменил отсутствующую в Харборе функцию CSETALL на самодельную.
И она сделала свое черное дело - отключила как то вставку по команде KEYBOARD "123qwe". Убираю восстановление всех установок(// CSETALL(cur_set)) все работает!
Теперь думаю что не так, чем бы CSETALL() заменить?
#include "Inkey.ch" 
#include "Set.ch"
procedure tstboardk()
PRIV p1:=" "

SET KEY K_F1 TO help
CLEAR
@ 09, 10 SAY "->" GET p1
READ
RETURN
*******************************
FUNCTION help()
PARAMETERS prog_name, line_num, input_var, nrec
PRIV cur_set
cur_set = CSETALL()
KEYBOARD "123qwe"
// CSETALL(cur_set)
RETURN NIL
*******************************
FUNCTION CSetAll( aNewSets )
LOCAL aCurrentSets[_SET_COUNT], nCurrent
IF ( aNewSets != NIL ) // Set new and return current
FOR nCurrent := 1 TO _SET_COUNT
aCurrentSets[nCurrent] := ;
SET(nCurrent, aNewSets[nCurrent])
NEXT
ELSE
FOR nCurrent := 1 TO _SET_COUNT
aCurrentSets[nCurrent] := SET(nCurrent)
NEXT
ENDIF
RETURN (aCurrentSets)


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




Пост N: 5323
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 21:18. Заголовок: mikeas пишет: Тепер..


mikeas пишет:

 цитата:
Теперь думаю что не так, чем бы CSETALL() заменить?


Не понял для чего она в этой задаче , тем более что без нее все работает ?
В функции help() ни чего же не меняется в плане установок.

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





Пост N: 26
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 23.10.15 07:52. Заголовок: Это в примере ничего..


Это в примере ничего не меняется. В реале меняется. Csetall применял от лени, каюсь и выбрасываю ее. Посмотрел внимательней в HELP-е родном надо только сохранять softseek и cursor. Едем дальше :)

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


Пост N: 1169
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 23.10.15 09:32. Заголовок: В числе прочих SET-о..


mikeas пишет:

 цитата:
Убираю восстановление всех установок(// CSETALL(cur_set)) все работает!


В числе прочих SET-ов там есть _SET_TYPEAHEAD, при установке которого происходит очистка буфера клавиатуры.
Цитата: "When executed, SET TYPEAHEAD clears the keyboard buffer and sets the size to <nKeyboardSize>."
http://www.ousob.com/ng/53guide/ngf1c3d.php

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





Пост N: 27
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 23.10.15 13:22. Заголовок: PSP, ОК, спасибо! Пр..


PSP, ОК, спасибо!
Продолжаю продвигаться дальше через мелкие, но вредные ляпы :)
1) Обнаружил в вызове MEMOEDIT разночтение в параметрах:
в Клиппере отсутствующую пользовательскую функцию задавал как "..,'',...", а Харбор потребовал "...,,..."
2) Столкнулся: Клиппер все имена файлов создавал в верхнем регистре, Харбор так как задашь!


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





Пост N: 28
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 23.10.15 13:42. Заголовок: Еще одна печаль с до..


Еще одна печаль с докой.
Думал вот здесь уж точно все есть: http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-reference-guide.htm
Не нашел MEMOEDIT()! :(
Надыбал старинный NG-справочник Clipper 5.3, но это компромис :(


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




Пост N: 5324
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.10.15 13:51. Заголовок: mikeas пишет: Не на..


mikeas пишет:

 цитата:
Не нашел MEMOEDIT


Он слегка сырой я бы сказал.
Используй поиск на форуме по MEMOEDIT или (что лучше) HBEDITOR

Справку можно взять тут __http://www.spb4plus.ru/old/comment/reply/114 , в самом низу линк на rar архив

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



Пост N: 183
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 23.10.15 16:10. Заголовок: Вместе с МиниГуи пос..


Вместе с МиниГуи поставляется HELP для HARBOUR , там тоже есть описание memoedit

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





Пост N: 29
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 24.10.15 10:44. Заголовок: Еще обнаружил: ATREP..


Еще обнаружил:
ATREPL(aCH[i,1],@buf,aCH[i,2]) -не сработало в Harbour Ничего не меняется, хотя в Клиппере работает. Пришлось заменить на: buf:=STRTRAN(buf,aCH[i,1],aCH[i,2])

В HELP для HARBOUR из МиниГуи нашел и MEMOEDIT, и ATREPL (где как раз обнаружил отсутствие возможности задать параметр по ссылке - @buf )

А что за файлы *.hbd в C:\hb32\doc ?
Подозреваю, что документация/описание.
Ими как-то можно пользоваться?
Чем их открывать?

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



Пост N: 159
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 24.10.15 10:58. Заголовок: Поиск на форуме по ключу "hbd"


Поиск на этом форуме по "hbd" дает ссылку
click here

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





Пост N: 30
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 24.10.15 11:42. Заголовок: petr707, пошел по сс..


petr707, пошел по ссылке. Прочитал. Теперь не найду HBIDE в C:\hb32\contrib
Забыли положить? Не там ищу? Или чего то не понял?


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




Пост N: 5325
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.10.15 12:15. Заголовок: mikeas пишет: Тепер..


mikeas пишет:

 цитата:
Теперь не найду HBIDE в C:\hb32\contrib



 
2012-09-27 12:11 UTC+0200 Viktor Szakats (vszakats.net/harbour)
- contrib/hbide
- contrib/hbqt
- contrib/hbxbp
- deleted hbqt, hbxbp, hbide as final step of contrib
split to separate project.
find them in this (temporary) repository:
http://sourceforge.net/projects/qtcontribs/
or checkout from Harbour repository using:
svn co -r 18153 https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour



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





Пост N: 31
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 24.10.15 12:23. Заголовок: Dima, спасибо, но эт..


Dima, спасибо, но это для меня что-то слишком слжно, пока. Ладно, фиг с ними с .hbd файлами.

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





Пост N: 32
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 25.10.15 13:59. Заголовок: Обнаружил совсем не ..


Обнаружил совсем не хороший эффект, который заключается в следующем:
При выполнении комманды:
USE (WorkPath+"w1") EXCLUSIVE NEW
Харбор пытается открыть одноименный индекс CDX для открываемого файла, а у меня такого не предусмотрено!
Как бы отказаться от такого автоматического открытия индекса? Нет ли какого переключателя?
Я то в Клиппере использовал SIX и IDX индексы, которые такого не предусмативают.
Как выход посматриваю на переход к ntx, но по моему в них нет возможности условного индекса и SCOPE.
Прямо караул!

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


Пост N: 1170
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.10.15 14:24. Заголовок: SET AUTOPEN .F...


mikeas пишет:

 цитата:
Харбор пытается открыть одноименный индекс CDX для открываемого файла, а у меня такого не предусмотрено!
Как бы отказаться от такого автоматического открытия индекса? Нет ли какого переключателя?


SET AUTOPEN .F.

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





Пост N: 33
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 25.10.15 14:54. Заголовок: Убрал DBFCDX по умол..


Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую.
Вроде все что было под вопросом(и условный индекс и SCOPE) работают.
Что удивительно, читаются мемо из FPT ф-ла.

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


Пост N: 1171
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.10.15 14:59. Заголовок: mikeas пишет: Убрал..


mikeas пишет:

 цитата:
Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую.
Вроде все что было под вопросом(и условный индекс и SCOPE) работают.


CDX лучше. Странно, что у вас какие-то с ним проблемы. Драйвер работает отлично.

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





Пост N: 34
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 25.10.15 15:00. Заголовок: PSP, cпаибо. Класс..


PSP, cпаибо.

Класс, оказывается есть переключатель!

Интересно, а условный индекс в NTX предусмотрен?

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





Пост N: 35
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 25.10.15 15:08. Заголовок: PSP, так ничего стра..


PSP, так ничего странного. Я ж не новую программу пишу, а вынужденно пересобираю под 32bitб которую пока все Windows поддерживают. Стараюсь минимизировать изменения кода.
Программа писалась давно и такие эффекты в ней не предусмотрены были.
А чтобы, выполняя USE..., открывать одноименный временный индекс от другого dbf-файла, такого в страшном сне не приснится.
А чем CDX лучше? (доп.функционал не рассматриваем)
А волшебное заклинание: "SET AUTOPEN .F." нигде больше и не нашел. Плохо конечно искал :)


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


Пост N: 1172
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.10.15 15:23. Заголовок: mikeas пишет: А что..


mikeas пишет:

 цитата:
А чтобы, выполняя USE..., открывать одноименный временный индекс от другого dbf-файла, такого в страшном сне не приснится.


Ну, это не проблема драйвера, а проблема программиста ))

 цитата:
А чем CDX лучше? (доп.функционал не рассматриваем)


По мне - с ним удобнее работать. В одном файле несколько индексов, каждый под своим именем. Не буду утверждать, но, по-моему, он быстрее, чем NTX.

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




Пост N: 4551
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.10.15 18:29. Заголовок: mikeas пишет: Убрал..


mikeas пишет:

 цитата:
Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую.


Фигня NTX - потом опять будешь переделывать под CDX ! Всё равно потом руководство что-нибудь захочет, и придётся переделывать !

PSP пишет:

 цитата:
Ну, это не проблема драйвера, а проблема программиста ))


+1 !

PSP пишет:

 цитата:
Не буду утверждать, но, по-моему, он быстрее, чем NTX.


Быстрей. И не помню, но на больших базах с NTX как то по другому нужно делать. Не помню точно, давно было.

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





Пост N: 36
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 25.10.15 19:55. Заголовок: Andrey, спасибо за к..


Andrey, спасибо за комментарий.
Используя SET AUTOPEN .F. (исключительно для экономии времени, чтобы не пересматривать весь код на предмет возможных ошибок) мне сейчас переключиться с NTX на CDX и обратно как 2 пальца... очень просто. Нужно только убрать/вставить команду DBFCDX по умолчанию и все пересобрать. Просто сознательно (ну так исторически сложилось) не использую всех возможностей CDX.


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




Пост N: 4552
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.10.15 20:58. Заголовок: mikeas пишет: Прост..


mikeas пишет:

 цитата:
Просто сознательно (ну так исторически сложилось) не использую всех возможностей CDX.


Ну я тоже всех возможностей не использую. Потом со временем дойдут руки и для других возможностях CDX.

Я вообще делаю имя индекса отличное от имени базы.
Например база city.dbf, а индексы делаю city1.cdx, city2.cdx, city3.cdx
Хотя можно держать в одном индексном файле, но как делал давно под ntx, так и оставил до сих пор.
Это не принципиально сейчас для перевода в Харбор.

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

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