- •Оператор 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: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор For...Next
Оператор For...Next
Назначение:
Выполняет последовательность действий в цикле с заданным числом итераций.
Предупреждение:
Оператор For... Next не может быть выполнен в окне MapBasic.
Синтаксис:
For var_name = start_expr To end_expr [ Step inc_expr ] statement_list
Next
где
var_name – имя переменной, выполняющей роль счетчика цикла; start_expr – численное выражение;
end_expr – численное выражение; inc_expr – численное выражение;
statement_list – группа операторов, выполняющихся за одну итерацию цикла.
Описание:
Оператор For... Next последовательно выполняет группу операторов заданное число раз. Управление циклом происходит при помощи целочисленной переменной var_name, выступающей в роли счетчика. Выражения start_expr, end_expr и inc_expr определяют, сколько раз будет выполнена группа операторов statement_list.
Оператор For присваивает счетчику значение, заданное выражением start_expr и первый раз выполняет группу операторов statement_list. Затем значение счетчика увеличивается на inc_expr, и операторы группы statement_list выполняются второй раз и так далее.
Если предложение Step inc_expr отсутствует в операторе, то счетчик увеличивается на одну единицу. Оператор For повторяет выполнение группы операторов до тех пор, пока значение счетчика меньше или равно end_expr. Как только var_name превысит значение выражения end_expr, цикл будет прекращен. Далее выполнение программы передается оператору, следующему за словом Next.
Если задать шаг отрицательным числом в предложении Step, то счетчик будет уменьшаться при выполнении цикла. В этом случае оператор For будет выполнять каждый шаг цикла до тех пор, пока var_name больше или равно end_expr.
Все операторы, которые находятся между операторами For и Next, являются операторами тела цикла statement_list и выполняются за одну итерацию (проход) цикла. Эти операторы образуют тело цикла. Для немедленного прекращения цикла, независимо от значения счетчика, используется оператор Exit For в теле цикла. Оператор Exit For просто передает управление программы следующему оператору после слова Next.
MapBasic позволяет Вам изменять величину переменной var_name в теле цикла и тем самым влиять на выполнение цикла. Но для соблюдения хорошего стиля программирования эту возможность использовать не рекомендуется.
Справочник MapBasic |
241 |
Оператор For...Next
Пример:
Dim i As Integer
'Сообщение Note будет выдаваться пять раз For i = 1 to 5
Note "Добро пожаловать в MapInfo!" Next
'этот цикл выполнится за три шага
For i = 1 to 5 Step 2
Note "Добро пожаловать в MapInfo!"
Next
'Этот цикл выполнится за три шага
'(на первом шаге i будет равно 5, на втором
'i будет 3, на третьем шаге i равно 1)
For i = 5 to 1 Step 2
Note "Добро пожаловать в MapInfo!"
Next
' MapBasic не сможет выполнить следующий оператор For For i = 100 to 50 Step 5
Note "Это сообщение никогда не появится " Next
Смотрите также:
Exit For, Do While... Loop, Do... LoopWhile
242 |
Справочник MapBasic |
Процедура ForegroundTaskSwitchHandler
Процедура ForegroundTaskSwitchHandler
Назначение:
Процедура, автоматически выполняющаяся при изменении фокуса окна программы MapInfo относительно других программ, выполняющихся в среде Windows.
Синтаксис:
Declare Sub ForegroundTaskSwitchHandler Sub ForegroundTaskSwitchHandler statement_list
End Sub
где
statement_list – список операторов процедуры.
Описание:
ForegroundTaskSwitchHandler – зарезервированное имя для процедуры MapBasic. Когда пользователь запускает программу, в которой есть такая процедура, программа не завершается после того, как выполнятся все операторы процедуры Main и другие процедуры, вызванные из нее. Программа будет находиться в режиме ожидания до тех пор, пока рабочее окно MapInfo не получит или потеряет фокус (т.е. сменится активность окна). Как только это произойдет, программа активизируется, выполняя процедуру с именем ForegroundTaskSwitchHandler. После выполнения процедуры программа вновь переходит в режим ожидания.
В процедуре WinChangedHandler может быть использована функция CommandInfo() для опеределения, преобретает ли MapInfo фокус или теряет его.
Пример:
Sub ForegroundTaskSwitchHandler
If CommandInfo(CMD_INFO_TASK_SWITCH)
=SWITCHING_INTO_MAPINFO Then
’... когда активно окно MapInfo
Else
’ ... когда активно окно другой программы
End If
End Sub
Смотрите также:
CommandInfo( )
Справочник MapBasic |
243 |
Функция Format$( )
Функция Format$( )
Назначение:
Возвращает строковое представление числа в заданном формате.
Синтаксис:
Format$(value, pattern)
где
value – численное выражение;
pattern – шаблонная строка, задающая формат.
Величина, полученная в результате:
Строка. Величина типа String.
Описание:
Функция Format$( ) преобразует число value в строковую величину, по шаблону, заданному параметром pattern. Например, число 12345.67 функция может преобразовать в строку “$12,345.67”.
Параметр pattern представляет собой строковый шаблон, по которому преобразуется число value. Он должен состоять из специальных символов, управляющих отображением числа в строке, таких как # , 0, %, запятая, точка, точка с запятой. Шаблон может также иметь косметические символы, такие как $, 4, (, ). Роль каждого из этих символов в формировании результирующей строки приведена в следующей таблице:
Символ в pattern |
Какую роль играет для результата функции |
# |
Соответствует всем цифрам из value до десятичной точки и одной цифре |
|
из value после десятичной точки. Если шаблон содержит один или более |
|
символов # левее десятичного знака, а форматируемое число меньше |
|
единицы, но больше нуля, то в результате ноль в целых частях не будет |
|
отображен, строка будет начинаться с точки. |
0 |
Применяется левее десятичной точки. Если управляющая строка |
|
содержит один или более символов "0" левее десятичной точки и |
|
значение числа меньше единицы и больше нуля, то результирующая |
|
строка будет иметь ноль перед десятичной точкой. |
. (точка) |
Соответствует десятичной точке. Число символов # правее точки |
|
определяет число десятичных разрядов, то есть сколько будет выведено |
|
символов после десятичной точки. Результирующая строка будет |
|
включать в себя тот десятичный разделитель, который установлен в |
|
Вашей системе. Используя оператор Set Format можно добиться |
|
назначить в качесстве десятичного разделителя точку, даже если в |
|
системе принят другой знак. |
244 |
Справочник MapBasic |
|
Функция Format$( ) |
|
|
|
|
, (запятая) |
Разделитель тысяч. Если управляющая строка содержит запятую перед |
|
|
знаком решетки, определяющей целую часть числа, то в результате |
|
|
каждые три цифры будут отделены запятой. Например, десять |
|
|
миллионов будут показаны так: "10,000,000". Результирующая строка |
|
|
будет включать в себя тот десятичный разделитель, который установлен |
|
|
в Вашей системе. Используя оператор Set Format можно назначить в |
|
|
качестве десятичного разделителя точку, даже если в системе принят |
|
|
другой знак. |
|
% |
Процентное представление числа. Если управляющая строка содержит |
|
|
знак процента, то результатом будет строка с числом, умноженным на |
|
|
сто и знаком процента справа. Например, число 0.75 будет |
|
|
преобразовано в строку "75%". Если Вы не намерены преобразовывать |
|
|
число в проценты, но хотите иметь в строке знак %, используйте его в |
|
|
комбинации со знаком \ (обратный слэш). |
|
E+, e+ |
Представление числа в научном (экспоненциальном) формате. |
|
|
Например, число 1234 будет преобразовано в строку "1.234e+03". Если |
|
|
экспонента положительна, то после символа "e" будет помещен плюс. |
|
|
Если экспонента отрицательна, после символа "e" будет помещен знак |
|
|
минус. |
|
E–, e– |
Представление числа в научном (экспоненциальном) формате. От |
|
|
предыдущего отличается тем, что в случае положительной экспоненты |
|
|
знак плюс не отображается. |
|
; (точка с запятой) |
Знаком "точка с запятой" Вы разделяете в одной управляющей строке |
|
|
два шаблона для положительного и отрицательного значения. Так, в |
|
|
управляющей строке сначала определяется формат для представления |
|
|
положительных значений числа, потом через точку с запятой задается |
|
|
другой формат для отрицательных значений. |
|
|
Если Вы задаете управляющую строку таким образом, то знак минус уже |
|
|
автоматически не отображается для отрицательных значений. Если |
|
|
необходимо иметь знак минус, включите "L" в формат для |
|
|
отрицательных значений. |
|
\ |
Разрешает включение текстового символа. Если обратный слэш стоит |
|
|
перед специальным символом (например, перед %), то MapBasic будет |
|
|
рассматривать этот символ в шаблоне как текстовый символ. |
Ошибки:
В результате выполнения функции Вы можете получить код ошибки ERR_FCN_INVALID_FMT, если неправильно задан параметр pattern.
Примеры:
Следующие примеры показывают, какие результаты получаются при применении различных строковых шаблонов. Результаты показаны в комментариях. Внимание: в локализованных системах Вы можете получить те же результаты, но немного в другом виде.
Format$( |
12345, ",#") |
' возвращает |
"12,345" |
|
Format$( 12345, ",#") |
' возвращает |
" 12,345" |
||
Format$( |
12345, "$#") |
' |
возвращает |
"$12345" |
Format$( 12345, "$#") |
' |
возвращает "$12345" |
||
Справочник MapBasic |
|
|
245 |
Функция Format$( )
Format$( |
12345.678, |
"$,#.##") |
' возвращает "$12,345.68" |
||
Format$( 12345.678, |
"$,#.##") |
' возвращает "$12,345.68" |
|||
Format$( |
12345.678, |
"$,#.##;($,#.##)") |
' |
возвращает |
"$12,345.68" |
Format$( 12345.678, |
"$,#.##;($,#.##)") |
' |
возвращает |
"($12,345.68)" |
Format$( 12345.6789, |
",#.###") |
' возвращает "12,345.679" |
Format$( 12345.6789, |
",#.#") |
' возвращает "12,345.7" |
Format$( 12345.6789, |
"#.###E+##") |
' возвращает " 1.235e+04" |
Format$( 0.054321, |
"#.###E+##") |
' возвращает "5.432e 02" |
Format$( 12345.6789, |
"#.###E ##") |
' возвращает " 1.235e04" |
Format$( 0.054321, "#.###E ##") |
' возвращает "5.432e 02" |
|
Format$( 0.054321, "#.##%") |
' возвращает "5.43%" |
|
Format$( 0.054321, "#.##\%") |
' возвращает ".05%" |
|
Format$( 0.054321, "0.##\%") |
' возвращает "0.05%" |
Смотрите также:
Str$( )
246 |
Справочник MapBasic |