Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Оператор End Program

Оператор End Program

Назначение:

Прекращает выполнение прикладной программы.

Предупреждение:

Оператор End Program не может быть выполнен в окне MapBasic.

Синтаксис:

End Program

Описание:

Оператор End Program используется для остановки выполнения прикладной программы.

Прикладная программа – это программа, написанная на MapBasic и откомпилированная. Если программа дополняет меню новыми системами команд и снабжает их процедурамиLобработчиками, то после закрытия программы оператором End Program удаляются как изменения в системе меню, так и модулиLобработчики событий.

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

Смотрите также:

End MapInfo

208

Справочник MapBasic

Процедура EndHandler

Процедура EndHandler

Назначение:

Специальная подпрограмма, subLпроцедура, автоматически выполняющаяся при завершении выполнения программы.

Синтаксис:

Declare Sub EndHandler

Sub EndHandler statement_list

End Sub

где

statement_list – список операторов.

Описание:

EndHandler – зарезервированное имя для процедуры MapBasic. Процедура EndHandler называется обработчиком завершения программы. Когда пользователь запускает программу, в которой есть обработчик завершения программы, то эта процедура будет автоматически вызвана при завершении программы. Обработчик сработает как при закрытии MapInfo, так и при остановке выполнения программы оператором End Program или любым другим способом.

Если несколько MapBasicLпрограмм снабжены обработчиками завершения программы, то при закрытии MapInfo каждая из них сработает по очереди.

Смотрите также:

RemoteMsgHandler, SelChangedHandler, ToolHandler, WinChangedHandler, WinClosedHandler

Справочник MapBasic

209

Функция EOF( )

Функция EOF( )

Назначение:

Возвращает FALSE, если MapBasic читает запись из файла, и TRUE, если пробует прочитать чтоLто после конца файла.

Синтаксис:

EOF(filenum)

где filenum – номер открытого файла оператора Open File.

Величина, полученная в результате:

Логическая. Величина типа Logical.

Описание:

Функция EOF( ) позволяет определить, достигнут ли конец файла, открытого в программе под номером filenum. Возвращается логическое "да" (TRUE), если оператор Get попытался прочитать запись, следующую после последней, и логическое "нет" (FALSE), если была прочитана запись файла.

Функция EOF( ) работает с открытыми файлами (текстовыми или произвольной природы); если же Вы хотите отследить конец чтения из открытой таблицы MapInfo, то используйте функцию EOT( ).

Пример использования функции EOF( ) можно посмотреть в тексте программы NVIEWS.MB.

Ошибки:

В результате выполнения оператора может генерироваться код ошибки ERR_FILEMGR_NOTOPEN, если файл не был открыт.

Смотрите также:

EOT( ), Open File

210

Справочник MapBasic

Функция EOT( )

Функция EOT( )

Назначение:

Возвращает FALSE, если MapBasic читает запись из таблицы, и TRUE, если пробует прочитать чтоLто после конца таблицы.

Синтаксис:

EOT(table)

где table – имя открытой таблицы.

Величина, полученная в результате:

Логическая. Величина типа Logical.

Описание:

Функция EOT( ) позволяет определить, достигнут ли конец таблицы, открытой в программе под именем table. Возвращается логическое "да" (TRUE), если MapBasic попытался прочитать запись, следующую после последней, и логическое "нет" (FALSE), если прочитана строка таблицы.

Ошибки:

В результате выполнения оператора может генерироваться код ошибки ERR_TABLE_NOT_FOUND, если таблица не найдена.

Пример:

Здесь результат функции EOT( ) является критерием прекращения выполнения цикла.

Dim total As Float

Open Table "customer.tab" Fetch First From customer Do While Not EOT(customer)

total = total + customer.order Fetch Next From customer

Loop

Смотрите также:

Fetch, EOF( ), Open File, Open Table

Справочник MapBasic

211

Функция Erase( )

Функция Erase( )

Назначение:

Возвращает объект, полученный из другого удалением части, которая перекрывается другим объектом.

Синтаксис:

Erase (source_object, eraser_object)

где

source_object – объект, кроме точечного или текстового; eraser_object – замкнутый объект, выполняющий роль "ластика".

Величина, полученная в результате:

Величина типа Оbject.

Описание:

Функция Erase( ) возвращает объект, полученный в результате удаления части объекта source_object, перекрываемой объектом eraser_object, выполняющим роль ластика.

Объект source_object может быть линейным (прямой линией, полилинией или дугой) или замкнутым объектом (область, прямоугольник, скругленный прямоугольник или эллипс), но не может быть точечным или текстовым объектом. Объект eraser_object должен быть замкнутым.

Объект, полученный в результате, унаследует стиль оформления (тип линии, штриховки и цвет) от объекта source_object.

Пример:

'В этом примере o1 и o2 – объектные переменные,

'которые уже имеют значения.

If o1 Intersects o2 Then

If o1 Entirely Within o2 Then

Note "Удаление не состоялось: первый объект

полностью перекрывается "ластиком"."

Else

o3 = Erase( o1, o2 )

End If

Else

Note "Удаление не состоялось: объекты не пересекаются."

End If

Смотрите также:

Objects Erase, Objects Intersect

212

Справочник MapBasic

Функция Err( )

Функция Err( )

Назначение:

Возвращает числовой код, соответствующий текущей ошибке.

Синтаксис:

Err( )

Величина, полученная в результате:

Целое число. Величина типа Integer.

Описание:

Функция Err( ) возвращает целочисленный код, соответствующий последней из происшедших ошибок.

Обычно, когда в прикладной программе генерируется ошибка, выводится сообщение о ней и выполнение программы прекращается. Если в программе есть процедура обработчика ошибки, вход в которую обеспечивает оператор OnError, выполнение программы передается обработчику, как только какойLнибудь оператор, находящийся после OnError, возвращает ошибку. В обработчике ошибок Вы можете применить функцию Err( ) для определения происшедшей ошибки.

После того, как программа выполнит оператор Resume для возвращения из обработчика в процедуру, вызвавшую ее, код ошибки в программе обнуляется. Поэтому не имеет смысла использовать функцию Err( ) вне обработчика ошибок, т. к. функция, вызванная после обработчика, вернет ноль.

В этой книге после описаний некоторых операторов и функций следует раздел "Ошибки:", в котором перечисляются коды некоторых возможных ошибок, генерируемых описываемым оператором или функцией. Но это не все возможные ошибки, а только связанные с наиболее часто встречающимися ситуациями.

Некоторые коды ошибок MapBasic генерируются только в специфических, редко встречающихся ситуациях. Например, код ERR_INVALID_CHANNEL генерируется только функциями и операторами, обслуживающими DDELсвязь. Если оператор может генерировать такой "специальный" код, то он также приводится в разделе "Ошибки:" для этого оператора.

Другие ошибки MapBasic, напротив, порождаются часто и многими функциями. Например, функции CentroidX( ), Area( ) и ObjectInfo( ) используют выражение типа Object как параметр. Этими функциями может генерироваться код ошибки ERR_FCN_OBJ_FETCH_FAILED, если Вы задали параметр в форме tablename.obj, тогда как текущая строка этой таблицы не имеет присоединенного объекта.

Аналогично, можно еще упомянуть коды двух математических ошибок – ERR_FP_MATH_LIB_DOMAIN и ERR_FP_MATH_LIB_RANGE, которые возникают в результате ошибки в численном параметре. Эти ошибки могут возникать в случае выполнения любой из следующих функций: Asin( ), Acos( ), Atn( ), Cos( ), Exp( ), Log( ), Sin( ), Sqr( ) или Tan( ).

Полный список кодов ошибок MapBasic находится в файле ERRORS.DOC. (в Macintosh этот файл называется Error List).

Смотрите также:

Error, Error$( ), OnError

Справочник MapBasic

213

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]