Страница 1 из 1

Ошибка:Assertion failed

Добавлено: 01 Февраль 2006, 19:56
iBAH
После того как пересобрал программу с Clarion5 на Clarion6 появяются мессаги об ошибке ввода:

Код: Выделить всё

Assertion failed on line: 583 in file ABFILE.CLW. Mesage: The file is still open. Open counter is 0 on file: ..\Sonefile.tps. Shall I GPF? [Yes] [No]
Убрал в Aplication Options "Enable #ASSERT checking"... не помогло.
Как избавиться от этого?

Добавлено: 02 Февраль 2006, 0:23
Admin
Отключи дебаг режим в апликашке.
А вообще судя по всему ты где то не соблюдаешь правило: Количество OPEN(File) = CLOSE(File)

Добавлено: 02 Февраль 2006, 18:45
iBAH
Admin писал(а):Отключи дебаг режим в апликашке.
Объяните, пожалуста, что вы имеете ввиду. Это вообще где? (извините, если глупый вопрос задал; если имеется ввиду Setup->App Options->Gen->Debug Gen, то это было по умолчанию откючено)
Admin писал(а):А вообще судя по всему ты где то не соблюдаешь правило: Количество OPEN(File) = CLOSE(File)
Это я сразу проверил... как будто все файлы закрыты (в форме, которую закрываю) :?

Добавлено: 03 Февраль 2006, 2:08
StillZero
Project/Edit/Properties галка Build Release system

Добавлено: 03 Февраль 2006, 7:23
Admin
Эту галку нужно поставить!
Без нее выполняются команды ASSERT


RTFM:
... If debug is on and the expression is false (blank or zero), an error message displays indicating the specific line number and source code module where the asserted expression was false. The user is invited to GPF the program at that point, which allows Clarion's post-mortem debuggers to activate.

If debug is off, the expression is still evaluated, but no error message is displayed if the result is false. To activate error messages in release build (debug is off), you can add the following project define to your application ...

Добавлено: 03 Февраль 2006, 7:45
iBAH
Большое спасибо за подробный ответ! Я на эту галочку смотрел... :D в C5 она была не была установлена и ничего подобного не наблюдал. Теперь все Ok!

Добавлено: 03 Февраль 2006, 9:45
softcreator
Вообще-то это называется принципом страуса :D
Избавились от появления сообщения об ошибке - значит избавились от ошибки - так что ли?
А данный оператор в ABC используется для сигнализирования о факте наличия логической ошибки в программе. И нужно разбираться с ее источником, а не прятать голову в песок. ИМХО конечно же...

Добавлено: 03 Февраль 2006, 10:46
Admin
softcreator правильно говорит! Ошибку нужно локализировать... такие моменты у меня к падению программы приводили иногда...

Добавлено: 03 Февраль 2006, 15:15
iBAH
softcreator писал(а):Вообще-то это называется принципом страуса :D
Избавились от появления сообщения об ошибке - значит избавились от ошибки - так что ли?
Согласен, однако, если начальство говорит, что программа должна работать сегодня, а процедуры, которые не сам писал во всю кричат об ошибке ввода любые средства хороши. Если б я хорошо знал Clarion, то не вопрос... а я всего месяц назад увидел, что это за зверь.. поэтому вся надежда на этот форум!

Добавлено: 05 Февраль 2006, 10:50
lsgsoftware
Кларион не для чайников.Нужно пуд соли съесть , чтобы уверенно писать программы под Кларион.Успехов !!!