- •Оператор Add Column
- •Оператор Add Map
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter Cartographic Frame
- •Оператор Alter Control
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Bar
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор AutoLabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Функция ButtonPadInfo( )
- •Оператор Call
- •Функция•CartesianArea( )
- •Функция CartesianBuffer( )
- •Функция CartesianDistance ( )
- •Функция CartesianObjectLen( )
- •Функция CartesianPerimeter( )
- •Функция Centroid( )
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Функция CommandInfo()
- •Оператор Commit Table
- •Оператор Continue
- •Предложения Control Button / OKButton / CancelButton
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложения Control ListBox / MultiListBox
- •Предложение Control PopupMenu
- •Предложение Control RadioGroup
- •Предложение Control StaticText
- •Функция ConvexHull( )
- •Предложение CoordSys
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Функция CreateCircle( )
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create Object
- •Оператор Create Pline
- •Оператор Create Point
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Функция CreateText( )
- •Функция DateWindow( )
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Оператор For...Next
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Global
- •Оператор Goto
- •Оператор Graph
- •Оператор If...Then
- •Оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция Int( )
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Функция LabelFindByID( )
- •Функция LabelFindNext( )
- •Функция Labelinfo( )
- •Оператор Layout
- •Функция LegendFrameInfo( )
- •Функция LegendInfo( )
- •Функция LegendStyleInfo( )
- •Оператор Line Input
- •Процедура Main
- •Функция MakeCustomSymbol( )
- •Функция MakeFontSymbol( )
- •Оператор Map
- •Функция Map3dInfo( )
- •Оператор Menu Bar
- •Функция MenuitemInfoByID( )
- •Оператор Metadata
- •Оператор Note
- •Функция NumAllWindows( )
- •Оператор Objects Check
- •Оператор Objects Combine
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Report
- •Оператор Open Table
- •Оператор Open Window
- •Оператор Pack Table
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор Print #
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Remove Cartographic Frame
- •Оператор Remove Map
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Window
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Функция Server_ColumnInfo( )
- •Оператор Server Commit
- •Функция Server_Connect( )
- •Оператор Server Create Map
- •Оператор Server Disconnect
- •Функция Server_DriverInfo( )
- •Функция Server_EOT( )
- •Функция Server_Execute( )
- •Оператор Server Fetch
- •Функция Server_GetodbcHConn( )
- •Функция Server_GetodbcHStmt( )
- •Оператор Server Link Table
- •Функция Server_NumCols( )
- •Функция Server_NumDrivers( )
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File Timeout
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Style
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Функция StyleAttr( )
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Функция UnitAbbr$( )
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Write #
- •Приложение A: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор Do Case...End Case
Оператор Do Case...End Case
Назначение:
Выполняет ту группу операторов, условия для которой истинны.
Предупреждение:
Оператор Do Case не может быть выполнен в окне MapBasic.
Синтаксис:
Do Case do_expr
|
Case case_expr [, case_expr ] |
|
statement_list |
[ |
Case... ] |
[ |
Case Else |
statement_list ]
End Case
где
do_expr – выражение;
case_expr – выражение, результат которого будет сравниваться со значением do_expr; statement_list – группа операторов.
Описание:
Оператор Do Case, подобно оператору If... Then... Else, проверяет истинность определенных выражений и, в зависимости от результата, выполняет одну из групп операторов. Оператор Do Case в языке MapBasic аналогичен оператору Select Case в языке BASIC. (Имя оператора изменено для того, чтобы не возникало путаницы с оператором Select.)
Выполняя оператор Do Case, MapBasic вычисляет выражение case_expr за первым операционным словом Case. Если результат case_expr равен результату вычисления выражения do_expr, то MapBasic выполнит группу операторов statement_list, которая расположена за первым словом Case; и после этого управление программой передается оператору, следующему после ключевых слов End Case.
Если результаты вычислений выражений do_expr и case_expr из первого предложения Case не равны, MapBasic переходит к проверке выражения case_expr из следующего предложения Case. И так далее. Проверяется каждое условие case_expr по порядку, пока не будет найдено равное do_expr.
Если равного выражения не будет найдено вообще и в операторе нет предложения Case Else, то не будет выполнено ни одного оператора из групп statement_list. Если есть предложение Case Else и не найдено ни одного равенства, то MapBasic выполнит операторы statement_list, заключенные между ключевыми словами Case Else и End Case.
Заметим, что оператор Do Case такой формы:
Do Case expr1
Case expr2 statement_list1
Case expr3, expr4 statement_list2
Case Else statement_list3
End Case
работает так же, как оператор If ... Then ... Else следующей конструкции:
200 |
Справочник MapBasic |
Оператор Do Case...End Case
If expr1 = expr2 Then statement_list1
ElseIf expr1 = expr3 Or expr1 = expr4 Then statement_list2
Else
statement_list3
End If
Пример:
В примере строятся такие текстовые строки: "Первый квартал", "Второй квартал" и т.п., в зависимости от текущего месяца.
Dim cur_month As Integer, msg As String
cur_month |
= Month( CurDate( ) ) |
|
Do Case |
cur_month |
|
Case 1, |
2, 3 |
|
msg |
= |
"Первый квартал" |
Case 4, |
5, 6 |
|
msg |
= |
"Второй квартал" |
Case 7, |
8, 9 |
|
msg |
= |
"Третий квартал" |
Case Else |
||
msg |
= |
"Четвертый квартал" |
End Case |
|
|
Смотрите также:
If... Then... Else
Справочник MapBasic |
201 |
Оператор Do...Loop
Оператор Do...Loop
Назначение:
Выполняет последовательность действий по циклу до тех пор, пока выполнится (или, наоборот, не выполнится) некое условие.
Предупреждение:
Оператор Do Loop не может быть выполнен в окне MapBasic.
Синтаксис (вариант 1):
Do
statement_list
Loop [ { Until | While } condition ]
Синтаксис (вариант 2):
Do [ { Until | While } condition ] statement_list
Loop
где
statement_list – группа операторов для одного шага цикла; condition – условие, управляющее выполнением цикла.
Описание:
Оператор повторяет группу операторов statement_list, расположенных между словами Do и Loop до тех пор, пока выражение condition за предложением While не станет истинным (примет значение TRUE), либо так долго, пока выражение condition за предложением Until истинно (все время цикла будет равным TRUE).
Если цикл Do... Loop не содержит слов Until/While, то управление выполнением цикла ведется из операторов statement_list. Это можно осуществить с помощью следующих операторов: Goto, Exit Do. Оператор Exit Do немедленно прекращает любой цикл Do... Loop независимо от присутствия слов Until/While и передает управление программой оператору, следующему за словом Loop.
Предложения Until или While могут находиться как после слова Do, так и после Loop. В зависимости от этого проверка выполнения условия происходит до или после выполнения операторов statement_list. Это важно для первой итерации. Следующая конструкция:
Do statement_list
Loop While condition
выполняет операторы statement_list и потом вычисляет condition. Если condition равно TRUE, MapBaL sic вновь выполняет statement_list. И так далее, пока condition не станет равным FALSE. Цикл прекращается, и программа выполняет следующие операторы.
В следующей конструкции:
Do While condition statement_list
Loop
сначала вычисляется condition, и, если условие равно TRUE, MapBasic выполнит statement_list.
Пример:
В цикле Do... Loop читаются первые пять записей таблицы:
Dim sum As Float, counter As Integer
202 |
Справочник MapBasic |
Оператор Do...Loop
Open Table "world.tab" Fetch First From world counter = 1
Do
sum = sum + world.population Fetch Next From world counter = counter + 1
Loop While counter <= 10
Смотрите также:
Exit Do, For... Next
Справочник MapBasic |
203 |