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



Пост N: 1
Зарегистрирован: 12.11.09
ссылка на сообщение  Отправлено: 12.11.09 22:03. Заголовок: scope аномалия


перевожу программу с clipper 5.2 на harbour. Версия из последних ночных сборок.
Столкнулся с неработой в sixcdx функций создания scope: sx_setscope. На форуме это уже проходило.
(Странно, что не исправили, но судя по changelog разработчики сосредоточены на вещах далеких от прикладных.
Хотя это тоже конечно надо.)
Заменил вызовы на ordscope - стало получше, но ordscope(0) не работает.
Попробовал (ради смеха) ordscope(0, NIL) - работает.
Получается, что компилятор по разному передает параметры функции?
Даже если бы это была такая фича свойственная ordscope() - компилятор не должен был бы так работать.
Это можно поправить?
Продолжая тему ошибок.
Как-то ранее натолкнулся на то, что вываливает программу функция из xhb.lib:fparse.c, кажется FPARSELINE()
Есть ли смысл куда-то сообщать о найденных ошибках?

И еще, исходные тексты rmdbfcdx только за деньги (хочется чтобы функции m6_ заработали, да и scope может нормальные будут)? Или не имеет смысла - оставить в программе один ads?


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


постоянный участник


Пост N: 23
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 12.11.09 22:53. Заголовок: new2 А что должна б..


new2
А что должна была сделать функция ordscope(0)?

ordscope(0) - просто возвращает предыдущий top scope
ordscope(0,NIL) - сбрасывает верхнюю скопу


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


Пост N: 749
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 13.11.09 01:23. Заголовок: new2 пишет: Попробо..


new2 пишет:

 цитата:
Попробовал (ради смеха) ordscope(0, NIL) - работает.



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

 цитата:
ORDSCOPE()
Syntax

ORDSCOPE(<nScope>, [<expNewValue>]) --> uCurrentValue

Arguments
..
<nScope> is a number specifying the top (TOPSCOPE) or bottom
(BOTTOMSCOPE) boundary.

Note: To use the TOPSCOPE and BOTTOMSCOPE constants, you must
include (#include) the Ord.ch header file in your application.

<expNewValue> is the top or bottom range of key values that will be
included in the controlling order's current scope. <expNewValue> can be
an expression that matches the data type of the key expression in the
controlling order or a code block that returns the correct data type.

Omitting <expNewValue> or specifying it as NIL has the special effect of
resetting the specified scope to its original default.
The default top
range is the first logical record in the controlling order, and the
default bottom range is the last logical record.

Returns

If <expNewValue> is not specified, ORDSCOPE() returns and clears the
current setting. If <expNewValue> is specified, the function sets it
and the previous setting is returned.

Description

The range of values specified using ORDSCOPE() is inclusive. In other
words, the keys included in the scope will be greater than or equal to
the top boundary and less than or equal to the bottom boundary.

Note: To return current settings without changing them, call the
DBORDERINFO() function using the DBOI_SCOPETOP and DBOI_SCOPEBOTTOM
constants.




 цитата:
Получается, что компилятор по разному передает параметры функции?


???!!!

new2 пишет:

 цитата:
Продолжая тему ошибок.
Как-то ранее натолкнулся на то, что вываливает программу функция из xhb.lib:fparse.c, кажется FPARSELINE()
Есть ли смысл куда-то сообщать о найденных ошибках?


Конечно есть,
только убедитесь, что действительно присутствует ошибка; четко сформулируйте проблемму, подготовьте небольшой самодостаточный пример для иллюстрации.

И еще - для портирования с Clipper 5.2 на Harbour xhb.lib вообще-то не нужна.
Ночные сборки тоже не для портирования, а для тестирования самого Harbour.

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



Пост N: 2
Зарегистрирован: 12.11.09
ссылка на сообщение  Отправлено: 13.11.09 12:12. Заголовок: Петр пишет: Omittin..


Петр пишет:

 цитата:
Omitting <expNewValue> or specifying it as NIL has the special effect of
resetting the specified scope to its original default.


Да тут так и написано: пропуск второго параметра ИЛИ указание его в NIL сбрасывает scope

получается, компилятор различает вызовы funname(p1) и funname(p1,NIL). Всегда считал, что если в функцию параметр не передается, то в функции он равен NIL.

пример, в котором присутствует ошибка
взят из описания функции в xHarbour Language Reference Guide (Version 1.1)

строим так: hbmk2 fn.prg xhb.lib

PROCEDURE Main()
LOCAL cText, aData

cText := '"Jones, Mr",Male,"Oklahoma","IL",20041231,"Director, President"'

aData := FParseLine( cText )
FOR EACH cText IN aData
? LTrim( Str( HB_EnumIndex() ) ), cText
NEXT

** Output
// 1 Jones, Mr
// 2 Male
// 3 Oklahoma
// 4 IL
// 5 20041231
// 6 Director, President
RETURN

В xHb пример работает

Петр пишет:

 цитата:
И еще - для портирования с Clipper 5.2 на Harbour xhb.lib вообще-то не нужна.


Согласен, просто, когда переводил программу, искал замену для своих С и asm модулей и попалась эта функция. Конечно, я и без нее обошелся.

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

А по третьему вопросу?

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


Пост N: 751
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 13.11.09 13:38. Заголовок: Еще раз взгляните на..


Еще раз взгляните на синтаксис
ORDSCOPE(<nScope>, [<expNewValue>])
а не
ORDSCOPE(<nScope> [,<expNewValue>])
Omitting выглядит как ORDSCOPE( 0, ), а не ORDSCOPE( 0 )

 цитата:
получается, компилятор различает вызовы funname(p1) и funname(p1,NIL)


Естественно, в первом случае в функцию передается один параметр, во втором - два,
и в случае ORDSCOPE( 0, ) - тоже два.
ORDSCOPE(..) относится к числу функций, поведение которых зависит от числа переданных параметров, вот и все.
new2 пишет:

 цитата:
пример, в котором присутствует ошибка


я посмотрю


 цитата:
А по третьему вопросу?


Понятия не имею, что это такое и зачем оно нужно.



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



Пост N: 3
Зарегистрирован: 12.11.09
ссылка на сообщение  Отправлено: 13.11.09 22:16. Заголовок: Петр Спасибо за чет..


Петр
Спасибо за четкое разъяснение по скопе. Был невнимателен.
Петр пишет:

 цитата:
Понятия не имею, что это такое и зачем оно нужно.


rmdbfcdx это rdd dbfcdx с поддержкой RushMore, т.е. быстрых фильтров. Является одним из основных отличий в комплектации платного и бесплатного xHb.
Ее автор Przemyslaw Czerpak о ней:
..... I do not plan to public RMAP (RMDBFCDX/RMDBFNTX) library code.
IMHO without xHarbour.com some things like
professional documentation had never been created and if RMAP helps
them to keep their work then at least now I will keep this code
private.
Вполне понятное желание, но может есть у кого?


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


Пост N: 1127
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 18:17. Заголовок: new2 пишет: I do no..


new2 пишет:

 цитата:
I do not plan to public RMAP (RMDBFCDX/RMDBFNTX) library code.



Вчера Przemyslaw Czerpak написал в dev list


 цитата:
Hi,

> Viktor and others,
> Are there any specific technical limitations to port RMDBFCDX to Harbour ?

DBRMAP library works with Harbour from the beginning.

> In our forums several xHarbour users, wanting to migrate to Harbour, have
> commented that the lack of RMDBFCDX support on Harbour, is stopping them to
> migrate.

In few months new version of DBRMAP with some extensions
like file IO caches will be available as commercial library.
I plan to prepare also few other commercial libraries and
extensions to Harbour.
I'll send message about it when I'll be ready.

best regards,
Przemek



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

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