- •Add Cartographic Frame
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор Autolabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Оператор Call
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Оператор Commit Table
- •Оператор Continue
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложение Control RadioGroup
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Оператор Create Collection
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create MultiPoint
- •Оператор Create Point
- •Оператор Create PrismMap
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Оператор 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
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Graph
- •оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Оператор Line Input
- •Процедура Main
- •Оператор Map
- •Оператор Menu Bar
- •Оператор Metadata
- •Оператор Note
- •Оператор Objects Check
- •Оператор Objects Clean
- •Оператор Objects Combine
- •Оператор Objects Disaggregate
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Snap
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Table
- •Оператор Open Window
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Оператор Server Commit
- •Оператор Server Create Map
- •Оператор Server Create Table
- •Оператор Server Create Style
- •Оператор Server Disconnect
- •Оператор Server Fetch
- •Оператор 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 PrismMap
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Objects Move
- •Оператор Objects Offset
- •Функция Offset()
- •Функция SphericalOffset()
- •Функция SphericalOffsetXY()
- •Функция CartesianOffsetXY()
- •Функция LayerInfo( )
- •Оператор Register
- •Оператор Server Create Map
- •Функция TableInfo( )
Оператор Alter Table
Оператор Alter Table
Назначение:
Изменяет структуру открытой таблицы. Не может быть применен к связанным таблицам.
Синтаксис:
Alter Table table (
[Add columnname columntype [, ... ] ] [Modify columnname columntype [, ... ] ] [Drop columnname [, ... ] ]
[Rename oldcolumnname newcolumnname [, ... ] ] [Order columnname, columnname [, ... ] ]
)
[ Interactive ]
где
table – имя открытой таблицы;
columnname – имя колонки (поля) в открытой таблице, длина которой не должна превышать 31 символ и состоит из букв, цифр и символа подчеркивания и не может начинаться с цифры; columntype – тип данных колонки (поля) в таблице (включая ширину поля, если необходимо); oldcolumnname – старое имя колонки (поля) для переименования;
newcolumnname – новое имя колонки (поля) для переименования.
Описание:
Оператор Alter Table используется для изменения структуры открытой таблицы. Можно добавлять и удалять колонки, изменять у существующих колонок ширину или тип данных, переименовывать колонки и менять порядок их расположения. Надо заметить, что, если в таблице были изменения, то перед тем как выполнить оператор Alter Table, Вы должны сохранить их на диске или восстановить таблицу с диска, удалив изменения.
Параметр columntype может иметь следующие значения:
Integer – целое число (4 байта);
SmallInt – короткое целое число (2 байта);
Float – десятичное число с плавающей точкой;
Decimal(size, decplaces) – десятичное число фиксированной длины (size) и числом знаков после запятой (decplaces);
Char(size) – строка символов, где size – максимальное количество символов в поле;
Date – дата;
Logical – логическая величина.
Предложение Add используется для добавления новой колонки в Вашу таблицу. Предложение Mod ify используется для изменения типа данных колонки. Предложение Drop используется для удаления колонки. Предложение Rename изменяет имя колонки. Предложение Order позволяет Вам задать свой порядок расположения колонок. Один оператор Alter Table одновременно может включать в себя все пять предложений, и каждое предложение может обращаться к списку колонок. Поэтому одним оператором Alter Table Вы можете сделать все структурные изменения в таблице (смотрите пример).
Справочник MapBasic |
39 |
Оператор Alter Table
Предложение Order работает только с колонками и не влияет на порядок записей в таблице. Перечислите через запятую имена полей в нужном Вам порядке. Первое имя в списке соответствует самой левой колонке в окне Списка. В таком же порядке будут расположены поля в окне "Информация" – в верхней строке будет значение из первой колонки таблицы и так далее по порядку.
Если программа применяет оператор Alter Table к таблице, которая имеет мемо-поля, то последние будут утеряны. Сообщений об этом не выводится.
Когда Вы производите аналогичные действия, используя интерфейс MapInfo (команда ТАБЛИЦА > ИЗМЕНИТЬ > ПЕРЕСТРОИТЬ), то программа предупредит о потере мемо-полей. Когда программа MapBasic меняет структуру таблицы, то предупреждений не будет.
Оператор Alter Table может послужить причиной удаления слоев из окна Карты, а следовательно, привести к потере объектов тематических слоев или объектов с Косметического слоя. Если Вы используете ключевое слово Interactive, то MapInfo предложит пользователю сохранить тематические или/и косметические объекты.
Пример:
Таблица GCPOP.TAB состоит из следующих колонок: "pop_88", "metsize", "fipscode" и "utmcode". Оператор Alter Table делает следующее:
·в предложении Rename меняет имя колонки "pop_88" на "Население";
·в предложении Drop удаляет колонки "metsize", "fipscode", "utmcode";
·в предложении Add создает колонку "Школа" для 2-байтовых значений целого типа (SmallInt) и колонку "Субсидии" вещественного типа;
·в предложении Order заново определяет порядок колонок в таблице.
Open Table "gcpop" Alter Table pop
(Rename pop_88 Население
Drop metsize, fipscode, utmcode Add Школа SmallInt, Субсидии Float Order Школа, Население, Субсидии)
Смотрите также:
Add Column, Create Index, Create Map, Create Table, Drop
40 |
Справочник MapBasic |
Функция ApplicationDirectory$( )
Функция ApplicationDirectory$( )
Назначение:
Возвращает имя каталога, в котором находится файл выполняющегося приложения.
Синтаксис:
ApplicationDirectory$(_)
Величина, полученная в результате:
Строка. Величина типа String.
Описание:
Вызов функции ApplicationDirectory$(_) из приложения поможет Вам определить каталог (или папку), из которого была запущена прикладная программа. Если в данный момент никаких приложений не загружено (Вы вызвали функцию в окне MapBasic), то функцией возвращается пустая строка.
Для определения каталога, в котором установлена программа MapInfo, используйте функцию Pro gramDirectory$(_).
Пример:
Dim sAppPath As String
sAppPath = ApplicationDirectory$( )
'С этого момента переменная sAppPath равна строке:
'"C:\MAPBASIC\CODE\"
Смотрите также:
ProgramDirectory$(_)
Справочник MapBasic |
41 |
Функция Area( )
Функция Area( )
Назначение:
Возвращает географическую площадь объекта.
Синтаксис:
Area(obj_expr, unit_name)
где
obj_expr – выражение, результат которого есть величина типа Object;
unit_name – единицы измерения площади (например, "sq km" – квадратные километры).
Величина, полученная в результате:
Десятичное число с плавающей запятой. Величина типа Float.
Описание:
Функция Area(_) возвращает площадь географического объекта, определенного параметром obj_expr, в единицах измерения, указанных во втором параметре. Смотрите описание оператора Set Area Units, в котором приведен список возможных имен единиц измерений.
Площадь имеют только области, эллипсы, прямоугольники и скругленные прямоугольники. Результат применения функции к точечным, текстовым объектам, а также к прямой линии, дуге и полилинии будет равен нулю. Для скругленного прямоугольника функция Area(_) возвращает приблизительное значение. MapBasic вычисляет площадь этого объекта так, как если бы он был обычным прямоугольником.
Пример 1:
В этом примере демонстрируется, как используется функция для вычисления площади географического объекта. Объект "states.obj" представляет географический объект, соответствующий текущей строке в определенной таблице.
Dim sq_miles As Float
Open Table "states.tab"
Fetch First From states
sq_miles = Area(states.obj, "sq mi")
Пример 2:
Вы можете также использовать функцию Area(_) в операторе Select для формирования SQLзапроса. В следующем примере из таблицы STATES выбирается некоторая информация и помещается в таблицу запроса. Эта таблица также имеет колонку для результатов вычисления площади выбранных штатов.
Select state, abbr, Area(obj, "sq km")
From states
Into results
Смотрите также:
ObjectLen(_), Perimeter(_), Set Area Units
42 |
Справочник MapBasic |
Функция AreaOverlap( )
Функция AreaOverlap( )
Назначение:
Вычисляет площадь пересечения двух замкнутых объектов.
Синтаксис:
AreaOverlap (object1, object2)
где
object1 и object2 – два замкнутых (имеющих площадь) объекта.
Величина, полученная в результате:
Десятичное число с плавающей запятой. Величина типа Float.
Описание:
Функция возвращает величину площади пересечения двух объектов object1 и object2 в единицах измерения площадей, текущих для выполняемой программы MapBasic.
Смотрите также:
Overlap(_), ProportionOverlap(_), Set Area Units
Справочник MapBasic |
43 |
Функция Asc( )
Функция Asc( )
Назначение:
Возвращает код первого символа строки.
Синтаксис:
Asc(string_expr)
где
string_expr – выражение, результат которого есть символьная строка.
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция Asc(_) возвращает код первого символа строки string_expr. В Windows это ANSI-код.
Если строка пустая, то функция Asc(_) возвращает ноль.
Операционные оболочки Windows и Macintosh работают с разными системами кодов символов. Поэтому результат одного и того же вызова функции Asc(_) в разных системах может различаться. Однако обе системы имеют общие коды от 32 (пробел) до 126 (тильда). В этот диапазон входят все цифры и буквы латинского алфавита. Буквы русского алфавита в разных системах имеют разные коды.
Всистемах, поддерживающих двубайтовые коды символов (например, Windows Japanese): если первый символ в строке string_expr однобайтовый, то функция Asc(_) вернет код от 0 до 255; если первый символ в строке string_expr двубайтовый, то функция Asc(_) вернет код от 256 до 65535.
Всистемах, не поддерживающих систему двубайтовых кодов, результат функции находится в диапазоне от 0 до 255.
Пример:
Dim code As SmallInt
code = Asc("Afghanistan")
'code равно 65,
'так как 65 код символа A
Смотрите также:
Chr$(_)
44 |
Справочник MapBasic |
Функция Asin( )
Функция Asin( )
Назначение:
Возвращает арксинус.
Синтаксис:
Asin(num_expr)
где
num_expr – численное выражение, результат которого должен находиться в диапазоне от единицы до минус единицы включительно.
Величина, полученная в результате:
Десятичное число с плавающей запятой. Величина типа Float.
Описание:
Функция Acos(_) вычисляет арксинус числа, полученного в результате вычисления выражения num_expr. Другими словами, Acos(_) возвращает величину угла в радианах, синус которого равен параметру num_expr.
Результатом вычисления является угол, значение которого возвращается в радианах. Диапазон значения угла находится между -p/2 и p/2 радиан (число p равно приблизительно 3.141593, и p/2 радиан равно 90 градусам).
Для перевода градусов в радианы число необходимо умножить на число DEG_2_RAD. Для обратного конвертирования используется коэффициент RAD_2_DEG. Чтобы Ваша программа могла использовать эти коэффициенты конвертирования, она должна содержать оператор Include "MAPBASIC.DEF".
Пример:
Include "MAPBASIC.DEF"
Dim x, y As Float
x = 0.5
y = Asin(x) * RAD_2_DEG
'y равно 30,
'так как синус от 30 градусов равен 0.5
Смотрите также:
Acos(_), Atn(_), Cos(_), Sin(_), Tan(_)
Справочник MapBasic |
45 |
Функция Ask( )
Функция Ask( )
Назначение:
Показывает диалоговое окно с сообщением или вопросом и предлагающее подтвердить или отменить предложение.
Синтаксис:
Ask(prompt, ok_text, cancel_text)
где
prompt – текст сообщения, заданный в кавычках;
ok_text – текст на кнопке подтверждения (например, "Да" или "Продолжить"); cancel_text – текст на кнопке отмены (например, "Отменить" или "Нет").
Величина, полученная в результате:
Логическая. Величина типа Logical.
Описание:
Функция Ask(_) формирует и выводит на экран диалоговое окно, в котором пользователю предлагается ответить "да" или "нет". В соответствии с этим функция возвращает TRUE или FALSE.
Параметр prompt содержит текст сообщения или вопроса, на который надо ответить пользователю, например – "Файл уже существует. Заменить на новый?". Текст сообщения должен содержать не более 300 символов.
Диалоговое окно имеет две кнопки: одна для положительного ответа, другая для отрицательного. Параметры ok_text и cancel_text задают текст для этих кнопок (например, “OK” или “Да” – для положительного ответа, “Нет” или “Стоп” – для отрицательного). Если пользователь нажмет на кнопку с надписью ok_text, то функция вернет значение TRUE. Кнопка с надписью cancel_text выдает значение FALSE. Нажатие на клавишу ESC равносильно выбору кнопки отмены в диалоге; функция Ask(_) примет значение FALSE. Текст для кнопок должен быть лаконичен и сжат. Если Ваша фраза настолько велика, что не помещается в пределах стандартной кнопки, то лучше воспользуйтесь оператором Dialog вместо функции Ask(_).
Кнопка ok_text выбирается по умолчанию, то есть вместо нажатия мышкой эту кнопку можно выбрать клавишей ENTER.
Пример:
Dim more As Logical
more = Ask("Вы согласны удалить объекты?","Да","Нет")
Смотрите также:
Dialog, Note(_), Print
46 |
Справочник MapBasic |
Функция Atn( )
Функция Atn( )
Назначение:
Возвращает арктангенс.
Синтаксис:
Atn(num_expr)
где
num_expr – выражение, результатом которого является число.
Величина, полученная в результате:
Десятичное число с плавающей запятой. Величина типа Float.
Описание:
Функция Atn(_) возвращает арктангенс от числа, полученного в результате вычисления выражения num_expr. Другими словами, Atn(_) возвращает угловое значение в радианах, при котором тангенс равен числу num_expr.
Результатом вычисления является угол, значение которого возвращается в радианах. Диапазон значения угла находится между -p/2 и p/2 радиан (число p равно приблизительно 3.141593, и p/2 радиан равно 90 градусам).
Для перевода градусов в радианы число необходимо умножить на число DEG_2_RAD. Для обратного конвертирования используется коэффициент RAD_2_DEG. Чтобы Ваша программа могла использовать эти коэффициенты конвертирования, она должна содержать оператор Include "MAPBASIC.DEF".
Пример:
Include "MAPBASIC.DEF"
Dim val As Float
val = Atn(1) * RAD_2_DEG
'val равен 45, потому что
'арктангенс от 1 равен 45 градусам
Смотрите также:
Acos(_), Asin(_), Cos(_), Sin(_), Tan(_)
Справочник MapBasic |
47 |