Форум » [x]Harbour » Harbour dbf editor » Ответить

Harbour dbf editor

Pasha: Выкладываю апдейт (давненько не выкладывал): http://files.mail.ru/LXJ3D7 Whatsnew - смотрите сами, не помню уже. Хочу перевести на буржуйскую мову, но не все сообщения еще сделал, так что буржуям пока не показываю, чтобы их великий и могучий не шокировал :)

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

subbota: Может кому-то пригодится мой опыт сборки dbch.exe версии 3.8 ( для Win и BCC51 ) из исходников, взятых с http://kresin.belgorod.su/rus/dbc.html В dbchrb.bat указал свою директорию расположения харбора SET HRB_DIR=c:\minigui\harbour Во всех .prg заменил вызовы: do anima... на anima( ... ) do flmsfld... на flmsfld( ... ) do calcul... на calcul( ... ) В procs_c.c заменил вызов ISBYREF(...) на HB_ISBYREF(...) Кроме того для Harbour версии 2.1 пришлось скопировать из harbour\contrib\xhb\hbcompat.ch в harbour\include\hbcompat.ch Для harbour версий 3.1 и 3.2 последнее делать не пришлось

alkresin: subbota пишет: Во всех .prg заменил вызовы: do anima... на anima( ... ) do flmsfld... на flmsfld( ... ) do calcul... на calcul( ... ) А зачем ? В procs_c.c заменил вызов ISBYREF(...) на HB_ISBYREF(...) Ну да, в стандартной сборке 3 версии ISBYREF(), наверное, уже убрали. Я-то пользуюсь 2 версией. subbota пишет: Кроме того для Harbour версии 2.1 пришлось скопировать из harbour\contrib\xhb\hbcompat.ch в harbour\include\hbcompat.ch Хм... Так ведь в harbour\include\ есть hbcompat.ch

AlexMyr: alkresin пишет: Хм... Так ведь в harbour\include\ есть hbcompat.ch уже нет 2007-09-28 17:26 UTC+0100 Viktor Szakats (harbour syenar.net) * include/Makefile - include/hbcompat.ch + contrib/xhb/hbcompat.ch * contrib/xhb/xhb.ch * contrib/xhb/Makefile * Moved content or hbcompat.ch into xhb.ch. Those who need compatibility, have to replace * Moved hbcompat.ch (for compatibility) to contrib/xhb


alkresin: Странно. Я, вообще-то, использовал hbcompat.ch не для решения проблем с xHarbour, а только из-за того, что в dbc.prg есть вызов hb_SetCodepage() (теперь это hb_cdpSelect()). Тогда проще заменить название функции - Harbour 1.0 уже, наверное, не пользуются.

subbota: subbota пишет: Во всех .prg заменил вызовы: do anima... на anima( ... ) do flmsfld... на flmsfld( ... ) do calcul... на calcul( ... ) alkresin пишет: А зачем ? Такой harbour я использовал ----------- Version: 3.1.0dev Date: 2011-08-15 Last ChangeLog entry: 2011-08-13 17:25 UTC-0800 Pritpal Bedi Changelog version: 16991 Исходники были в директории c:\1 ---------- Такой harbour.out у меня получался без изменений исходников, описанных выше ---------- Cannot open ANIMA.prg, assumed external Cannot open FLMSFLD.prg, assumed external Cannot open ANIMA.prg, assumed external commands.prg(110) Warning W0027 Meaningless use of expression 'String' commands.prg(116) Warning W0027 Meaningless use of expression 'String' commands.prg(122) Warning W0027 Meaningless use of expression 'String' Cannot open CALCUL.prg, assumed external Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland dbc.c: lang.c: move.c: modistru.c: commands.c: view.c: query.c: pechdbc.c: prcmenu.c: errorsys.c: procs1.c: procs3.c: procs5.c: procs7.c: procs8.c: procared.c: procini.c: procscri.c: procs_c.c: Warning W8065 procs_c.c 19: Call to function 'ISBYREF' with no prototype in function HB_FUN_CARR_INIT Warning W8012 procs_c.c 35: Comparing signed and unsigned values in function HB_FUN_CARR_PUT Warning W8065 procs_c.c 39: Call to function 'ISBYREF' with no prototype in function HB_FUN_CARR_PUT Warning W8019 procs_c.c 60: Code has no effect in function HB_FUN_CARR_DEL Warning W8004 procs_c.c 60: 'pul' is assigned a value that is never used in function HB_FUN_CARR_DEL Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_ISBYREF' referenced from C:\1\PROCS_C.OBJ

alkresin: Реальная ошибка, из-за которой программа не собиралась - это isbyref(). А те сообщения Cannot open ANIMA.prg, assumed external Cannot open FLMSFLD.prg, assumed external Cannot open ANIMA.prg, assumed external совершенно безобидны. Это стандартные клипперовские сообщения, они говорят о том, что названные процедуры предполагаются внешними - находящимися в других файлах проекта ( что, собственно, и есть ).

subbota: Только файлы называются по-другому: ANIMA() и CALCUL() лежат в procs8.prg FLMSFLD() - в procs5.prg Но все равно спасибо за полезную утилиту !

Andrey: Как быть, если у DBF файла имя содержит точки ? P0071214.173.dbf P0071217.166.dbf dmf32-2012.02.dbf dmf32-2012.03.dbf и т.д.

Pasha: Это старая версия. Надо обновить

Andrey: Pasha, а в твоей версии 2.0 нет кодовой страницы UA1125 ?

Pasha: Сейчас нет, но это легко исправить

Andrey: Pasha пишет: Сейчас нет, но это легко исправить Сделайте пожалуйста, а то базу не могу проверить из темы: http://clipper.borda.ru/?1-0-0-00000573-000-20-0#006.001.001.001.001

Pasha: Выложил новую версию программы hdbedit 2.03. Ссылка: http://code.google.com/p/hdbedit/downloads/list Whatsnew (переводить не буду): - append from: added sdf and "delimited with" possibility; - copy to: added sdf and "delimited with" possibility; - using codepage in change structure; - added support "edit by char" for LETO; - replace: added filter for empty field value; - translate by codepages. www.virustotal.com по традиции обнаруживает 2 "вируса", но я уже не буду ввязываться в бессмыссленную борьбу с антивирусами. Программа собрана текущим Harbour только с печки с SVN. cp1125 добавлена, и можно использовать функцию "Транслировать" - это перекодировка файла из одной кодовой страницы в другую.

Andrey: SergeyKorotun пишет: база для перекодировки из ср1125 в ср866 http://us.ua/1024583/ Pasha , что то я не пойму. Открываю этот файл - показывает кодировку RU866. Беру ставлю UA1125 (кстати это DOS или WIN кодировка ? ) транслирую в UA866, выхожу. Открываю заново файл, опять стоит кодировка RU866. Это баг открытия или так нужно (т.е. база открывается всегда в RU866) ?

Pasha: Формат dbf, который использует харбор, не содержит информацию о кодовой странице в заголовке файла. Поэтому автоматически определить, какая cp используется, нельзя. dbedit открывает файл с кодовой страницей, установленной в настройке. По умолчанию это RU866. Можно задать другую кодовую страницу, но надо иметь в виду, что все файлы будут открываться с этой cp

Andrey: Спасибо БОЛЬШОЕ ! А кодировка UA1125 - это DOS или WIN кодировка ? А то я недавно с этой кодировкой столкнулся....

Pasha: Я же подробно рассказывал про эту кодировку. Это вариант для dos

Andrey: Спасибо БОЛЬШОЕ ! Где то пропустил твое объяснение....

Andrey: Pasha, а как можно поле из одной колонки записать в другую в одной базе ? Во всех утилитах такая фича есть, а у тебя я не нашел...

Vlad04: Pasha пишет Формат dbf, который использует харбор, , не содержит информацию о кодовой странице в заголовке файла. Иногда надо, чтобы страница указывалась (мои данные читают в Vfoxpro и у них постоянные проблемы), можно это сделать ? Заголовок таблицы править после выгрузки - это не то.



полная версия страницы