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



Пост N: 27
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 04.08.16 16:22. Заголовок: "Error BASE/1077 Ошибка в аргументах: .NOT."


Кто может, да - поможет!
Вот такая Х..нь выдается у меня после второго прохода, т.е. - обращения к глобальной переменной!
Проект громоззкий, подсчитать сколько PRIVATE/PUBLIC - не получается (спешу в отпуск на Мальдивы :), и, прога не МОЯ! Далее - Clipper 5.30, ExoSpace (v2.1). Сунулся в И-нет, там только НИДЕРЛАНДЫ с латинской Америкой имеют такие проблеммы (на русском только в БЕСТе, и, то, исправили в 2006!) :(
Кто не на Канарах - Откликнитесь! Могу выставить пример - оператор IF, и сравниваю логическую переменную на TRUE/FALSE. Думал - переполнение (>2048) PRIVATE/PUBLIC объяв (предыдущему прогроамеру - было по-чему-то проСче так реализовать свою идею), но нет, - в первый-то проход ВИДИТ!, а на следующий выдает - ["ЗАГОЛОВОК"]! (то бишь, ошибку!)


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


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




Пост N: 5037
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.08.16 16:39. Заголовок: Gray пишет: Кто не ..


Gray пишет:

 цитата:
Кто не на Канарах - Откликнитесь!


Я не на Канарах....
Пиши кусок кода где вылетает - иначе ничего не понятно !

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


Пост N: 1252
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 04.08.16 16:57. Заголовок: http://www.itlnet.ne..


http://www.itlnet.net/programming/program/Reference/c53g02c/ng28223.html
Один из аргументов оператора сравнения - не логическая величина.

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




Пост N: 5943
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.08.16 21:33. Заголовок: PSP пишет: дин из а..


PSP пишет:

 цитата:
Один из аргументов оператора сравнения - не логическая величина.


+1


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



Пост N: 28
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 05.08.16 10:09. Заголовок: Функция в которой на..


Функция в которой наблюдается ошибка BASE/1077

FUNCTION M301Init(nComPort, nBaudRate)
local i, cYesNo
PRIVATE lExitYesNo, nSec

//lInitOk - порт уже инициализирован! 20160801 (функция!)

i := 0

myalert(iif(lInitOk(),".T.",".F.")) // стандартный ALERT, только с рамкой в правом нижнем углу
//if ! lInitOk() //запуск в первый раз? 20160801
cYesNo := iif(lInitOk(),".T.",".F.")
myalert(cYesNo)

if cYesNo == ".F." //// на втором проходе - ошибка!

myalert("first!")

IF ! COM_INIT(nComPort, nBaudRate, 'E', 8, 2)
Message(9, 17, ;
'Невозможно инициировать COM-port: ' + Str(nComPort), ;
LangStr("Language.dbf", "Error"), ;
ColorStr("Color.dbf", "Error"))
RETURN .F.
END
//............
//текст для работы с СОМ портом и оборудованием
//............
IF i < 100
lExitYesNo := .T.
ELSE
Message(9, 17, ;
'ОШИБКА: АППАРАТ НЕ ОТВЕЧАЕТ', ;
LangStr("Language.dbf", "Error"), ;
ColorStr("Color.dbf", "Error"))
lExitYesNo := .F.
ENDIF

lInitOk(.T.) //20160801
if lInitOk()
myalert("Yes!")
endif

endif

RETURN lExitYesNo //end of " M301Init(nComPort, nBaudRate) "


//-----------------------------------------------------------
function linitok (lflag)
local flg
//, spathf := getenv("TMP") + "\" + "flagm.dbf"
spathf := "flagm.dbf"

if pcount() = 0
if file(spathf)
flg := .T.
else
flg := .F.
endif
else
if valtype(lflag) = "L"
if lflag = .T.
fcreate(spathf)
flg := .T.
else
ferase(spathf)
flg := .F.
endif
else
myalert("lInitOk - дай нормальный параметЕр!")
endif
endif
return flg
//-------------------------------------------------------------------

Это последнее, что придумал - из глобальной (PUBLIC)переменной linitok := .F., сделал функцию ... :(

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



Пост N: 1133
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.08.16 11:20. Заголовок: Gray пишет if cYesNo..


Gray пишет
 цитата:
if cYesNo == ".F." //// на втором проходе - ошибка!


Сделайте так
cYesNo := iif( valtype(cYesNo) == "C", cYesNo, ".F.")
If cYesNo == ".F."
...

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



Пост N: 29
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 05.08.16 16:05. Заголовок: cYesNo - локальная, ..


cYesNo - локальная, и, каждый раз попадая в (FUNCTION) M301Init() ----> ".F." Что меня не устраивает. Если же сделать так (не красиво)

cYesNo := iif(lInitOk(),".T.",".F.")

cYesNo := iif( valtype(cYesNo) == "C", cYesNo, ".F.")
If cYesNo == ".F."
...

то, (масло - маслянное), при втором обращении - Error BASE/1077 ...gg


Пока определил для себя - lInitOk() работает снаружи. Вот и буду ставить условие перед вызовом M301Init().
Правда теперь надо столько текста перелопачивать! :( Проверил, работает! Осталось поймать "all bugs".
Могу предположить - появление ошибки "Error BASE/1077 ..." может быть связано с большой вложенностью вызываемых процедур. Типа - "переполнение стека", которого явно быть не должно! Кто что думает?

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




Пост N: 5044
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.08.16 12:58. Заголовок: Gray пишет: Кто что..


Gray пишет:

 цитата:
Кто что думает?


Делай проще конструкции программы, не пользуйся текстовыми значениями типа ".F." - для этого специально сделали
логическую переменную = .F./.T.

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



Пост N: 30
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 09.08.16 11:22. Заголовок: Andrey пишет: Дела..


Andrey пишет:

 цитата:

Делай проще конструкции программы,


Так и делаю, а текстовые - от отчаяния! Прога не моя, надо было быстро подправить, и, вот приходится копаться основательно!

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



Пост N: 31
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 09.08.16 11:29. Заголовок: переменная (public),..


переменная (public), объявленная в главном модуле проги, перестает быть видимой в прцессе работы программы. В моем случае при втором обращении (при первом - все на "Ура"!)

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




Пост N: 5951
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.08.16 14:22. Заголовок: Gray пишет: перемен..


Gray пишет:

 цитата:
переменная (public), объявленная в главном модуле проги, перестает быть видимой в прцессе работы программы. В моем случае при втором обращении (при первом - все на "Ура"!)


Про эту переменную речь cYesNo ?
Ну так он заявлена как Local в функции M301Init

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



Пост N: 32
Зарегистрирован: 23.07.09
ссылка на сообщение  Отправлено: 21.10.16 08:53. Заголовок: и только на седьмые сутки, Зоркий Сокол увидел ...


Все оказалось до банальности просто: видимость переменных Public и Private! Мне было не_в_домек, что в чужой проге Private используется в качестве Local. От этого и все ТРАБЛЫ! Глубоко разбираться не стал - прога после Нового года, должна умереть. Подправил, и, отправил! Все! :) Всем СПАСИБО!

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

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