Автор | Сообщение |
|
| |
Пост 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_", но похоже не мой случай, до линковки дело еще не доходит. Куда копать? Подскажите, пожалуйста.
|
|
|
Ответов - 69
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост N: 5
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 13:48. Заголовок: Сори, забыл сказать,..
Сори, забыл сказать, для сборки использую hbmk2.
|
|
|
|
| постоянный участник
|
Пост N: 4538
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.10.15 14:09. Заголовок: Попробуй это - «Пере..
|
|
|
|
| постоянный участник
|
Пост N: 1166
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.10.15 14:21. Заголовок: mikeas, TOKEN() - эт..
mikeas, TOKEN() - это функция из Clipper Tools. Попробуйте указать явно использование библиотеки hbct
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 14:26. Заголовок: Здравствуйте, Андрей..
Здравствуйте, Андрей. Спасибо за оперативный ответ. DBU и прочие Клипперовские утилиты у меня собираются и работают хорошо. А как только взялся за головной модуль проекта, сразу получил проблему. Не хотелось бы переключаться на ходу HB <>xHB. Вроде определился, перехожу на Harbour. Да и проблема моя, наверняка кому-то встречалась. М.б. я какие то INCLUDы не упомянул? Все эти undefined reference to `HB_FUN_... получаются из-за использования функций CTLIB. Но вроде в Харборе такая бублиотека есть. И ссылки на "HB_FUN_..." сделал сам компилятор. Что ж дальше то не пошел?
|
|
|
|
| |
Пост N: 7
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 14:34. Заголовок: PSP, спасибо, похоже..
PSP, спасибо, похоже на то. К моему стыду, не знаю как сослаться явно на CTLIB, а перечислять все функии EXTERNAL из CTLIB наверно будет не правильно, вдруг что забуду :) Буду копать.
|
|
|
|
| постоянный участник
|
Пост N: 4539
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.10.15 14:37. Заголовок: Просто на хХарбор пе..
Просто на хХарбор перейти быстрей у меня получилось, да и сейчас это сделать просто. А вот переход на Харбор для новичков - проблема. Может сделать пока переход на хХарбор, а уже потом, набрав опыта, можно переходить на Харбор. Но это решает уже каждый сам. У меня терминалки до сих пор на хХарборе. Уже лет 9-10 (не помню точно). В принципе никакой разницы (для новичков) между хХарбором и Харбором нет.
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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
|
|
|
|
| постоянный участник
|
Пост N: 4540
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.10.15 15:33. Заголовок: mikeas пишет: C: ..
mikeas пишет: цитата: | C:\hb30\lib\win\mingw\libhbct |
| А зачем делать сразу на MinGw ? Это тормоза при сборке. Для тестирования и работы терминалки лучше BCC, быстрей всё собирается.
|
|
|
|
| |
Пост 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 ...
|
|
|
|
| |
Пост N: 5309
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.15 15:38. Заголовок: Andrey пишет: А зач..
Andrey пишет: цитата: | А зачем делать сразу на MinGw ? Это тормоза при сборке. |
| Если нормальный комп , нет тормозов.
|
|
|
|
|
| |
Пост N: 9
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 15:41. Заголовок: Спасибо, Dima. Но, у..
Спасибо, Dima. Но, увы "не выходит каменный цветок" :) Тот же отрицательный результат. Да и по указанному пути нет тактго файла: hbct.hbc Все файлы здесь: C:\hb30\lib\win\mingw\ имеют расширение .a и начинаются на "LIB..." М.б. я не тот Харбор осваиваю(версия 3.0) и слудует взять чтото поновее? Готовый собранный новее не нашел. Чесно говоря надеялся, что сразу "заведется". Никакой экзотики не использую или еще не дошел до реальных проблем.
|
|
|
|
| |
Пост N: 5310
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.15 15:43. Заголовок: mikeas пишет: Да и ..
mikeas пишет: цитата: | Да и по указанному пути нет тактго файла: hbct.hbc |
| тогда просто не указывай расширение вот так -LC:\hb30\lib\win\mingw\hbct
|
|
|
|
| |
Пост 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".
|
|
|
|
| |
Пост N: 11
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 15:54. Заголовок: Dima, так нет такой ..
Dima, так нет такой библиотеки "hbct" по указанному адресу, там все файлы формата lib... .a М.б. сильно устаревший Харбор юзаю? Чем заменить?
|
|
|
|
| |
Пост N: 5311
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.15 15:55. Заголовок: mikeas Там должен б..
mikeas Там должен быть файл libhbct.a но при сборке указывать надо hbct PS Тоже сижу на MINGW
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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 ?
|
|
|
|
| |
Пост N: 5313
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.15 17:31. Заголовок: mikeas а есть вообщ..
mikeas а есть вообще файл libhbct.a ?
|
|
|
|
| постоянный участник
|
Пост N: 1168
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.10.15 17:59. Заголовок: mikeas, скачайте све..
mikeas, скачайте свежий билд. В нем точно есть эта библа. Возможно, что и указывать на нее не придется.
|
|
|
|
|
| |
Пост 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}
|
|
|
|
| |
Пост N: 13
Зарегистрирован: 11.11.05
|
|
Отправлено: 20.10.15 18:23. Заголовок: Внимательно всмотрел..
Внимательно всмотрелся в сообщения об ошибках. Увидел там имена и своих модулей. Решил, что надо собрать весь проект, "пусть он развалится" :) Сейчас занимаюсь устранением клипперовских безобразий/безалаберностей :) Их много. Это печалит. Как устраню, опять вас помучаю. Спасибо всем! Искренне рад, что не в одиночестве вожусь! И таки да, файл libhbct.a на месте. Свежий билд скачал.
|
|
|
|
| |
Пост N: 155
Зарегистрирован: 21.04.13
|
|
Отправлено: 20.10.15 18:25. Заголовок: есть C:\hb30\lib\win\mingw\libhbct.a - размещение
есть C:\hb30\lib\win\mingw\libhbct.a - размещение
|
|
|
|
| |
Пост 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' разбираюсь с ними.
|
|
|
|
| |
Пост 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 и много другое чего продвинуто
|
|
|
|
| |
Пост N: 15
Зарегистрирован: 11.11.05
|
|
Отправлено: 21.10.15 10:09. Заголовок: petr707, спасибо. Та..
petr707, спасибо. Так и сделаю. Вопрос: а где Вы берете описания функций? Что-то не нашел :( В Mingui нашел файл: "(x)harbour.chm", но не уверен в достоверности описания, например DISKFREE() там есть.
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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?
|
|
|
|
| |
Пост N: 5315
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.10.15 18:10. Заголовок: Параметры процедур и..
Параметры процедур и в Clipper локальные. Нужны Private используем , PARAMETERS
|
|
|
|
| |
Пост 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
|
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 11.11.05
|
|
Отправлено: 21.10.15 18:28. Заголовок: Да, точно. Многие мо..
Да, точно. Многие модули у мня были без заголовков PROC/FUNC. Повставлял заголовки, ну и втиснул туда параметры не думая о последствиях. Придется заново лопатить все :(
|
|
|
|
| |
Пост N: 5316
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.10.15 18:28. Заголовок: mikeas пишет: О, на..
mikeas пишет: я об этом выше и писал :)
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 08:50. Заголовок: Да, Dima, Вы правы. ..
Да, Dima, Вы правы. Это я не внимательный :( Обнаружил очередную проблему: не работает SET SCOPE ! (Я использую SIXCDX, так исторически сложилось, но похоже в Харборе SIX кривой :( ) Поискал на сайте. Нашел аналогичную проблему, которую описывал wad1 в 2009 году. Решение: полный отказ от SIX. Придется все перепахивать на предмет замены SIX-функций "sx_..." на аналоги. Жаль. Финиш был так близок :)
|
|
|
|
| |
Пост N: 5318
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.15 09:31. Заголовок: mikeas пишет: Обнар..
mikeas пишет: цитата: | Обнаружил очередную проблему: не работает SET SCOPE |
| а так #include "dbinfo.ch" dbOrderInfo(DBOI_SCOPETOP........ dbOrderInfo(DBOI_SCOPEBOTTOM....
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 10:00. Заголовок: Dima, сори, не понял..
Dima, сори, не понял. Мне не знакомы эти Харбор-функции. Надеюсь если отключить SIXCDX повсеместно в проекте и подключить RDDCDX, то все SCOPe-ы заработают. Или нет? Мне только останется заменить явные вызову SIX-функций на их аналоги. Вот в этом возни много будет. Или м.б. с SIXCDX можно что-то переключить, чтобы SCOPE выполнялись? Вся суть проблемы: минимизировать исправления исходного кода.
|
|
|
|
| |
Пост N: 5319
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.15 10:03. Заголовок: mikeas я бы провери..
mikeas я бы проверил на простом примере для начала SCOPE c SIXCDX (сомневаюсь что он глючный) а на другом тоже самое с DBFCDX
|
|
|
|
| |
Пост N: 21
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 10:20. Заголовок: Это разумно, сейчас ..
Это разумно, сейчас попробую.
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост N: 22
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 12:35. Заголовок: Dima, спасибо. Я тож..
Dima, спасибо. Я тоже убедился, что SIX не работает на своем примере. Убираю его нафиг. Перехожу на DBFCDX.
|
|
|
|
| |
Пост N: 23
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 12:53. Заголовок: Еще обнаружил такой ..
Еще обнаружил такой эффект: оказывается если установить SCOPE без SIXа, то фунуции SIXа: sx_keyno() - тек.номер записи в индексе и sx_keycount()-кол-во записей в индексе показывают правильные числа с учетом установленного SCOPE. Т.е. можно рискнуть и функции SIXа(хотя бы эти) не переназначать! И это радует :)
|
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост N: 24
Зарегистрирован: 11.11.05
|
|
Отправлено: 22.10.15 15:35. Заголовок: Очередная засада: не..
Очередная засада: не срабатывает команда KEYBOARD <cSTRING> внутри GETа. Пока не знаю что и предпринять :( М.б. у кого была такая же беда, сориентируйте, плиз.
|
|
|
|
| |
Пост N: 109
Зарегистрирован: 24.04.13
|
|
Отправлено: 22.10.15 15:58. Заголовок: mikeas , пример кода..
mikeas , пример кода покажите. В каком смысле "внутри" ?
|
|
|
|
| |
Пост N: 5322
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.15 16:06. Заголовок: mikeas пишет: не ср..
mikeas пишет: цитата: | не срабатывает команда KEYBOARD <cSTRING> |
| пробни Hb_keyins
|
|
|
|
| |
Пост N: 158
Зарегистрирован: 21.04.13
|
|
Отправлено: 22.10.15 16:45. Заголовок: HB_KEYPUT - тоже можно
HB_KEYPUT - тоже можно
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост N: 5323
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.15 21:18. Заголовок: mikeas пишет: Тепер..
mikeas пишет: цитата: | Теперь думаю что не так, чем бы CSETALL() заменить? |
| Не понял для чего она в этой задаче , тем более что без нее все работает ? В функции help() ни чего же не меняется в плане установок.
|
|
|
|
| |
Пост N: 26
Зарегистрирован: 11.11.05
|
|
Отправлено: 23.10.15 07:52. Заголовок: Это в примере ничего..
Это в примере ничего не меняется. В реале меняется. Csetall применял от лени, каюсь и выбрасываю ее. Посмотрел внимательней в HELP-е родном надо только сохранять softseek и cursor. Едем дальше :)
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| |
Пост N: 27
Зарегистрирован: 11.11.05
|
|
Отправлено: 23.10.15 13:22. Заголовок: PSP, ОК, спасибо! Пр..
PSP, ОК, спасибо! Продолжаю продвигаться дальше через мелкие, но вредные ляпы :) 1) Обнаружил в вызове MEMOEDIT разночтение в параметрах: в Клиппере отсутствующую пользовательскую функцию задавал как "..,'',...", а Харбор потребовал "...,,..." 2) Столкнулся: Клиппер все имена файлов создавал в верхнем регистре, Харбор так как задашь!
|
|
|
|
| |
Пост N: 28
Зарегистрирован: 11.11.05
|
|
Отправлено: 23.10.15 13:42. Заголовок: Еще одна печаль с до..
|
|
|
|
| |
Пост N: 5324
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.10.15 13:51. Заголовок: mikeas пишет: Не на..
mikeas пишет: Он слегка сырой я бы сказал. Используй поиск на форуме по MEMOEDIT или (что лучше) HBEDITOR Справку можно взять тут __http://www.spb4plus.ru/old/comment/reply/114 , в самом низу линк на rar архив
|
|
|
|
| |
Пост N: 183
Зарегистрирован: 19.05.05
|
|
Отправлено: 23.10.15 16:10. Заголовок: Вместе с МиниГуи пос..
Вместе с МиниГуи поставляется HELP для HARBOUR , там тоже есть описание memoedit
|
|
|
|
| |
Пост 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 ? Подозреваю, что документация/описание. Ими как-то можно пользоваться? Чем их открывать?
|
|
|
|
| |
Пост N: 159
Зарегистрирован: 21.04.13
|
|
Отправлено: 24.10.15 10:58. Заголовок: Поиск на форуме по ключу "hbd"
Поиск на этом форуме по "hbd" дает ссылку click here
|
|
|
|
| |
Пост N: 30
Зарегистрирован: 11.11.05
|
|
Отправлено: 24.10.15 11:42. Заголовок: petr707, пошел по сс..
petr707, пошел по ссылке. Прочитал. Теперь не найду HBIDE в C:\hb32\contrib Забыли положить? Не там ищу? Или чего то не понял?
|
|
|
|
| |
Пост N: 5325
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.10.15 12:15. Заголовок: mikeas пишет: Тепер..
|
|
|
|
| |
Пост N: 31
Зарегистрирован: 11.11.05
|
|
Отправлено: 24.10.15 12:23. Заголовок: Dima, спасибо, но эт..
Dima, спасибо, но это для меня что-то слишком слжно, пока. Ладно, фиг с ними с .hbd файлами.
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 11.11.05
|
|
Отправлено: 25.10.15 13:59. Заголовок: Обнаружил совсем не ..
Обнаружил совсем не хороший эффект, который заключается в следующем: При выполнении комманды: USE (WorkPath+"w1") EXCLUSIVE NEW Харбор пытается открыть одноименный индекс CDX для открываемого файла, а у меня такого не предусмотрено! Как бы отказаться от такого автоматического открытия индекса? Нет ли какого переключателя? Я то в Клиппере использовал SIX и IDX индексы, которые такого не предусмативают. Как выход посматриваю на переход к ntx, но по моему в них нет возможности условного индекса и SCOPE. Прямо караул!
|
|
|
|
| постоянный участник
|
Пост N: 1170
Зарегистрирован: 27.01.07
|
|
Отправлено: 25.10.15 14:24. Заголовок: SET AUTOPEN .F...
mikeas пишет: цитата: | Харбор пытается открыть одноименный индекс CDX для открываемого файла, а у меня такого не предусмотрено! Как бы отказаться от такого автоматического открытия индекса? Нет ли какого переключателя? |
| SET AUTOPEN .F.
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 11.11.05
|
|
Отправлено: 25.10.15 14:54. Заголовок: Убрал DBFCDX по умол..
Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую. Вроде все что было под вопросом(и условный индекс и SCOPE) работают. Что удивительно, читаются мемо из FPT ф-ла.
|
|
|
|
| постоянный участник
|
Пост N: 1171
Зарегистрирован: 27.01.07
|
|
Отправлено: 25.10.15 14:59. Заголовок: mikeas пишет: Убрал..
mikeas пишет: цитата: | Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую. Вроде все что было под вопросом(и условный индекс и SCOPE) работают. |
| CDX лучше. Странно, что у вас какие-то с ним проблемы. Драйвер работает отлично.
|
|
|
|
| |
Пост N: 34
Зарегистрирован: 11.11.05
|
|
Отправлено: 25.10.15 15:00. Заголовок: PSP, cпаибо. Класс..
PSP, cпаибо. Класс, оказывается есть переключатель! Интересно, а условный индекс в NTX предусмотрен?
|
|
|
|
| |
Пост N: 35
Зарегистрирован: 11.11.05
|
|
Отправлено: 25.10.15 15:08. Заголовок: PSP, так ничего стра..
PSP, так ничего странного. Я ж не новую программу пишу, а вынужденно пересобираю под 32bitб которую пока все Windows поддерживают. Стараюсь минимизировать изменения кода. Программа писалась давно и такие эффекты в ней не предусмотрены были. А чтобы, выполняя USE..., открывать одноименный временный индекс от другого dbf-файла, такого в страшном сне не приснится. А чем CDX лучше? (доп.функционал не рассматриваем) А волшебное заклинание: "SET AUTOPEN .F." нигде больше и не нашел. Плохо конечно искал :)
|
|
|
|
| постоянный участник
|
Пост N: 1172
Зарегистрирован: 27.01.07
|
|
Отправлено: 25.10.15 15:23. Заголовок: mikeas пишет: А что..
mikeas пишет: цитата: | А чтобы, выполняя USE..., открывать одноименный временный индекс от другого dbf-файла, такого в страшном сне не приснится. |
| Ну, это не проблема драйвера, а проблема программиста )) цитата: | А чем CDX лучше? (доп.функционал не рассматриваем) |
| По мне - с ним удобнее работать. В одном файле несколько индексов, каждый под своим именем. Не буду утверждать, но, по-моему, он быстрее, чем NTX.
|
|
|
|
| постоянный участник
|
Пост N: 4551
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.15 18:29. Заголовок: mikeas пишет: Убрал..
mikeas пишет: цитата: | Убрал DBFCDX по умолчанию, перестроил индексы на NTX. Тестирую. |
| Фигня NTX - потом опять будешь переделывать под CDX ! Всё равно потом руководство что-нибудь захочет, и придётся переделывать ! PSP пишет: цитата: | Ну, это не проблема драйвера, а проблема программиста )) |
| +1 ! PSP пишет: цитата: | Не буду утверждать, но, по-моему, он быстрее, чем NTX. |
| Быстрей. И не помню, но на больших базах с NTX как то по другому нужно делать. Не помню точно, давно было.
|
|
|
|
| |
Пост N: 36
Зарегистрирован: 11.11.05
|
|
Отправлено: 25.10.15 19:55. Заголовок: Andrey, спасибо за к..
Andrey, спасибо за комментарий. Используя SET AUTOPEN .F. (исключительно для экономии времени, чтобы не пересматривать весь код на предмет возможных ошибок) мне сейчас переключиться с NTX на CDX и обратно как 2 пальца... очень просто. Нужно только убрать/вставить команду DBFCDX по умолчанию и все пересобрать. Просто сознательно (ну так исторически сложилось) не использую всех возможностей CDX.
|
|
|
|
| постоянный участник
|
Пост N: 4552
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.15 20:58. Заголовок: mikeas пишет: Прост..
mikeas пишет: цитата: | Просто сознательно (ну так исторически сложилось) не использую всех возможностей CDX. |
| Ну я тоже всех возможностей не использую. Потом со временем дойдут руки и для других возможностях CDX. Я вообще делаю имя индекса отличное от имени базы. Например база city.dbf, а индексы делаю city1.cdx, city2.cdx, city3.cdx Хотя можно держать в одном индексном файле, но как делал давно под ntx, так и оставил до сих пор. Это не принципиально сейчас для перевода в Харбор.
|
|
|
Ответов - 69
, стр:
1
2
3
4
All
[только новые]
|
|