Автор | Сообщение |
|
| |
Пост 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 объяв (предыдущему прогроамеру - было по-чему-то проСче так реализовать свою идею), но нет, - в первый-то проход ВИДИТ!, а на следующий выдает - ["ЗАГОЛОВОК"]! (то бишь, ошибку!)
|
|
|
Ответов - 11
[только новые]
|
|
|
| постоянный участник
|
Пост N: 5037
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.16 16:39. Заголовок: Gray пишет: Кто не ..
Gray пишет: цитата: | Кто не на Канарах - Откликнитесь! |
| Я не на Канарах.... Пиши кусок кода где вылетает - иначе ничего не понятно !
|
|
|
|
| постоянный участник
|
Пост N: 1252
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.08.16 16:57. Заголовок: http://www.itlnet.ne..
|
|
|
|
| |
Пост N: 5943
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.16 21:33. Заголовок: PSP пишет: дин из а..
PSP пишет: цитата: | Один из аргументов оператора сравнения - не логическая величина. |
| +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., сделал функцию ... :(
|
|
|
|
| постоянный участник
|
Пост 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." ...
|
|
|
|
| |
Пост 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 ..." может быть связано с большой вложенностью вызываемых процедур. Типа - "переполнение стека", которого явно быть не должно! Кто что думает?
|
|
|
|
| постоянный участник
|
Пост N: 5044
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.08.16 12:58. Заголовок: Gray пишет: Кто что..
Gray пишет: Делай проще конструкции программы, не пользуйся текстовыми значениями типа ".F." - для этого специально сделали логическую переменную = .F./.T.
|
|
|
|
| |
Пост N: 30
Зарегистрирован: 23.07.09
|
|
Отправлено: 09.08.16 11:22. Заголовок: Andrey пишет: Дела..
Andrey пишет: цитата: | Делай проще конструкции программы, |
| Так и делаю, а текстовые - от отчаяния! Прога не моя, надо было быстро подправить, и, вот приходится копаться основательно!
|
|
|
|
| |
Пост N: 31
Зарегистрирован: 23.07.09
|
|
Отправлено: 09.08.16 11:29. Заголовок: переменная (public),..
переменная (public), объявленная в главном модуле проги, перестает быть видимой в прцессе работы программы. В моем случае при втором обращении (при первом - все на "Ура"!)
|
|
|
|
| |
Пост N: 5951
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.08.16 14:22. Заголовок: Gray пишет: перемен..
Gray пишет: цитата: | переменная (public), объявленная в главном модуле проги, перестает быть видимой в прцессе работы программы. В моем случае при втором обращении (при первом - все на "Ура"!) |
| Про эту переменную речь cYesNo ? Ну так он заявлена как Local в функции M301Init
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 23.07.09
|
|
Отправлено: 21.10.16 08:53. Заголовок: и только на седьмые сутки, Зоркий Сокол увидел ...
Все оказалось до банальности просто: видимость переменных Public и Private! Мне было не_в_домек, что в чужой проге Private используется в качестве Local. От этого и все ТРАБЛЫ! Глубоко разбираться не стал - прога после Нового года, должна умереть. Подправил, и, отправил! Все! :) Всем СПАСИБО!
|
|
|
|