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



Пост N: 1
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 10.02.08 20:36. Заголовок: Хочу попробовать на Harbour/xHarbour


В 90-х годах писал на Clipper 5.1 и вот уже лет 10 не пишу. Встретил людей, для которых
когда-то сделал одну прогу, которая до сих пор пашет. Они просят переписать (и дополнить) её под Win XP. Я им ничего конкретного не пообещал. Сказал, что многое уже
подзабыл и для освоения (профессионально) нового яз-а пограм-я нужно время. «Ты подумай, мы тебя не торопим» - сказали они мне и на этом мы расстались.
Та случайная встреча и знакомство с вашим сайтом разбудили во мне желание вновь писать (или хотя бы переписать старые) программы. Я думаю, в моём положении, Harbour/xHarbour это то, что даст вторую жизнь моим старым программам. Благо исходники сохранились.
После столь долгого перерыва в программировании прошу вашей помощи. Не откажите.
Не судите строго за глупые вопросы.

И так. Это мой старый bat-файл:
@echo off
set path=c:\clip5\bin
set lib=c:\clip5\lib
set include=c:\clip5\include
set obj=c:\clip5\obj
clipper a_1 /n /a /b
clipper a_2 /n /a /b
if not errorlevel 1 rtlink file a_1.obj,a_2.obj,dbfsix.obj output p_1 library dbfsix,clipper,ct150
del *.obj
____________________________

А вот что такое а_1 и а_2
a_1.prg
#include "dbfsix2.ch"
PROCEDURE MAIN1()
SetRDD("DBFSIX")
mai1()
RETURN
#include "мой.ch"
#include "PROG_01.PRG" => mai1()
#include "PROG_02.PRG"
.
.
.
#include "PROG_25.PRG"


a_2.prg
#include "dbfsix2.ch"
PROCEDURE MAIN2()
SetRDD("DBFSIX")
mai2()
return NIL
#include "PROG_26.PRG" => mai2()
#include "PROG_27.PRG"
.
.
.

#include "PROG_50.PRG"


А это bat-файл для Harbour:

set HB_BIN_INSTALL=d:\harbour\bin
set HB_LIB_INSTALL=d:\harbour\lib\
set HB_INC_INSTALL=d:\harbour\include\

%HB_BIN_INSTALL%\harbour aer_1.prg -n -i%HB_INC_INSTALL%
%HB_BIN_INSTALL%\harbour aer_2.prg -n -i%HB_INC_INSTALL%


d:\borland\bcc55\bin\bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% aer_1.c aer_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib


d:\borland\bcc55\bin\ilink32 -Gn d:\radk\clip5\obj\dbfsix.obj aer_1.obj aer_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
До использовиния ilink32 пример батника взят с сайта А. Кресина.

После выполнения этого батника, вот что получаю:
D:\>d:\harbour\bin\harbour a_1.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007, http://www.harbour-project.org/
Compiling 'a_1.prg'...


Lines 11842, Functions/Procedures 240
Generating C source output to 'a_1.c'... Done.

D:\>d:\harbour\bin\harbour a_2.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007, http://www.harbour-project.org/
Compiling 'a_2.prg'...


Lines 4863, Functions/Procedures 86
Generating C source output to 'a_2.c'... Done.

D:\>d:\borland\bcc55\bin\bcc32 -O2 -d -Id:\harbour\include\ -Ld:\harbour\lib\ a_1.c a_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
a_1.c:
a_2.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Access violation. Link terminated.

D:\>d:\borland\bcc55\bin\ilink32 -Gn с:\clip5\obj\dbfsix.obj a_1.obj a_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib d:\clip5\lib\dbfsix.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unsupported 16-bit segment(s) in module \drivers\sex\ver1-1\asm\sixdyn.asm

Если я правильно понял – ему не нравится dbfsix.lib. Но я использую в своих прогах
функции этой библиотеки.
И мне ещё не понятно, для чего дважды (в bcc32 и ilink32)прописывать необходимые библ-ки.
Что делаю неправильно? Как правильно составить батник для сборки прог-м?


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





Пост N: 19
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 14.02.08 13:30. Заголовок: Vlad04 пишет: Сообщ..


Vlad04 пишет:

 цитата:
Сообщи email вышлю весь пример



Мой email: takoj3@rambler.ru
Заранее спасибо!

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



Пост N: 20
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 14.02.08 14:11. Заголовок: TakOj пишет Dima! А ..


TakOj пишет

 цитата:
Dima! А это ваш сайт "http://spravki.net.ru/clipper/"? Если да, то вопрос по ссылке на
"Программа просмотра NG под Windows". Там что то совсем другое.



Вот нашёл, что-то похожее(ehwsetup.exe), а может это и именно то. Может ещё кому надо.
click here

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


Пост N: 70
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 14.02.08 16:19. Заголовок: Вот ЗДЕСЬ посмотри. ..


Вот ЗДЕСЬ посмотри. Вьювер WEG.

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



Пост N: 21
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 14.02.08 16:48. Заголовок: PSP пишет: Вот ЗДЕС..


PSP пишет:

 цитата:
Вот ЗДЕСЬ посмотри. Вьювер WEG.



Спасибо! Отличный вьювер, да и сам сайт интересный. Вот только с англ. никак не подружусь

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



Пост N: 22
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 16.02.08 15:37. Заголовок: Здравствуйте! В SIX..


Здравствуйте!

В SIX Drive для команды INDEX есть такая конструкция:


 цитата:
INDEX ON <expKey> TAG <tagname> [OF <cdxname>] ;
[FOR <expCondition>] ;
[WHILE <while>] ;
[ASCENDING | DESCENDING];
[UNIQUE] ;
[EMPTY] ;
[SUBINDEX] ;
[OPTION <expUDF> [STEP <nRecs>]]

SUBINDEX позволяет Вам при создании нового индексного файла оставить
текущий индекс активным. Это дает Вам возможность создавать "суб-индексы"
основанные на других условных индексах. Очень удобно в сетях или на
больших файлах данных!



Меня интересует параметр SUBINDEX. Чем и как его можно заменить в xHarbour?

Спасибо!



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


Пост N: 435
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.02.08 16:46. Заголовок: Присмотритесь к USE..


Присмотритесь к USECURRENT
The option instructs the database driver to use the current logical order of records for navigating the database during index creation. The logical order is determined by the controlling index and the SET SCOPE restriction. When the USECURRENT clause is omitted, the records in the current work area are evaluated in physical order.

USECURRENT указывает драйверу таблицы использовать текущий логический порядок записей для перемещения по таблице во время создания индекса. Логический порядок определяется управляющим индексом и ограничениями SET SCOPE. Если предложение USECURRENT не указано, записи в текущей рабочей области обрабатываются в физическом порядке.


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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 16.02.08 17:11. Заголовок: TakOj пишет: Спасиб..


TakOj пишет:

 цитата:
Спасибо!


ORDKEYADD()
:)

Спасибо: 0 
Цитата Ответить



Пост N: 23
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 17.02.08 13:18. Заголовок: Петр и ММК, спасибо ..


Петр и ММК, спасибо вам за подсказку! Буду пробовать.
У меня ещё вопрос. Как сделать в xHarbour, чтобы #include "мой.ch", определённый
в одном месте, был доступе в нескольких prg-файлах. И, если это возможно,
приведите, пожалуйста, небольшой пример.
Заранее спасибо!


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


Пост N: 73
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 17.02.08 15:45. Заголовок: Опция -i указывает к..


Опция -i указывает компилятору путь(ти) к include-файлам. Можно через ; указать несколько путей.
Пример из батника для сборки:
SET MG_ROOT=c:\minigui
SET MG_HRB=c:\xharbour
%MG_HRB%\bin\harbour Main.prg -n -i%MG_HRB%\include;%MG_ROOT%\include


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


Пост N: 436
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.02.08 16:43. Заголовок: Создайте папку в кот..


Создайте папку в которую поместите сл.файлы с таким содержимым

my_file1.prg

#ifdef TEST

procedure main
?sub1()
?sub2()

#endif


my_file2.prg

#ifdef TEST

procedure sub1()
return "sub1()"

#endif


my_file3.prg

#ifdef TEST

procedure sub2()
return "sub2()"

#endif


list.bat
dir > my.proj *.prg /B /A:-D

build.bat

set HB_BIN_INSTALL=c:\xharbour\bin
set HB_LIB_INSTALL=c:\harbour\lib\
set HB_INC_INSTALL=c:\xharbour\include\

for /F "usebackq eol=# tokens=1 delims=." %%i in (my.proj) do %HB_BIN_INSTALL%\harbour %%i -i%HB_INC_INSTALL% -n -p -u+%HB_INC_INSTALL%my.ch

del *.c

my.ch
#define TEST

Поместите my.ch в папку определенную HB_INC_INSTALL

Запустите на исполнение сначала list.bat, а потом build.bat.
Откройте и посмотрите любой ppo файл и убедитесь в том, правильно ли прошел процесс компиляции.




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



Пост N: 24
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 17.02.08 20:02. Заголовок: Петр пишет: Создайт..


Петр пишет:

 цитата:
Создайте папку в которую поместите сл.файлы с таким содержимым ...



Петр, я сделал всё как вы описали.
list.bat отрабатывает ОК!
build.bat выдает следующее:



К моему стыду, я никогда не работал с командой FOR, но интуитивно догадываюсь,
что происходит в строке с FOR build.bat–файла.

Создал такой батник (опираясь на build.bat) :

set HB_BIN_INSTALL=c:\xharbour\xharbour\bin
set HB_LIB_INSTALL=c:\xharbour\xharbour\lib\
set HB_INC_INSTALL=c:\xharbour\xharbour\include\

%HB_BIN_INSTALL%\harbour my_file1.prg my_file2.prg my_file3.prg -n -p -u -i%HB_INC_INSTALL%my.ch


d:\borland\bcc55\bin\bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% my_file1.c my_file2.c my_file3.c @l_lib.lnk

l_lib.lnk:
debug.lib vm.lib gtwin.lib rtl.lib pcrepos.lib codepage.lib lang.lib rdd.lib
macro.lib dbfntx.lib dbfcdx.lib dbffpt.lib hbsix.lib common.lib ct.lib

Получил рро-файлы, но они пустые. Это нормально?
Ехе-файл ничего не выводит на экран.
Что деляю неправильно?


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


Пост N: 437
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.02.08 20:34. Заголовок: Вы скопировали текст..


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

Обязательно после
set HB_BIN_INSTALL=c:\xharbour\xharbour\bin
set HB_LIB_INSTALL=c:\xharbour\xharbour\lib\
set HB_INC_INSTALL=c:\xharbour\xharbour\include\
поудаляйте все пробелы в конце строк, это особенность работы bat файлов.

И вторая ошибка
%HB_BIN_INSTALL%\harbour my_file1.prg my_file2.prg my_file3.prg -n -p -u+%HB_INC_INSTALL%my.ch

Именно -u+мой.ch Вам и нужен, а FOR - это так, для удобства



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


Пост N: 438
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.02.08 20:43. Заголовок: TakOj пишет: Получи..


TakOj пишет:

 цитата:
Получил рро-файлы, но они пустые. Это нормально?



Ну и конечно это не нормально
Т.е. я хочу сказать, что это не тот результат, на который мы вправе рассчитывать

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



Пост N: 25
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 17.02.08 21:30. Заголовок: Петр пишет: Т.е. я ..


Петр пишет:

 цитата:
Т.е. я хочу сказать, что это не тот результат, на который мы вправе рассчитывать



Всё получилось!

Петр, большое спасибо за столь подробный разбор моих ошибок!
После первой победы – есть желание двигаться дальше.




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

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