MapBasic基础入门培训_第1页
MapBasic基础入门培训_第2页
MapBasic基础入门培训_第3页
MapBasic基础入门培训_第4页
MapBasic基础入门培训_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1MapBasic基础入门培训讲课主要内容第一部分:Mapbasic简介第二部分:Mapbasic基础第三部分:Mapbasic实例第四部分:讨论第1页/共24页Mapbasic是Mapinfo公司在其桌面产品的基础上推出的二次开发工具,用于扩展MapInfo功能,实现程序的自动重复操作,并使MapInfo与其他应用软件集成等。一、Mapbasic简介MapBasicMapXMapXtremeSpatialWareMapinfo系列产品MapX性能价格比较好,功能较强的OCX控件,在标准可视化开始环境下(如VB,C++,.net等),通过其可以将地图对象嵌入到实际应用中。MapXtreme是面向企业的基于Internet/Intranet的地图应用服务器.充分利用ISAPI,NSAP和CGI的优越性,并可在任务Web服务器上运行,与Web服务器和浏览器有较好的兼容性。SpatialWare是在对象-关系数据库环境下,基于SQL进行空间查询和空间分析的空间信息管理系统。可将所有的空间数据作为对象进行存储,可以以现有的栅格图像文件为基础,利用Mapinfo专题图,山坡投影和着色技术生成三维图像。第2页/共24页一、Mapbasic简介MapBasic集成环境与特征文本编辑器程序编译器程序链接器联机帮助文本编辑器(Editor)用于程序的编辑与修改。程序编译器(Compiler)用于源程序编译,以生成可执行程序。程序链接器(Linker)用于将若干独立的模块链接成一个应用程序。联机帮助(Help)则为程序员在线提供MapBasic的每条语句或函数的详细说明资料。第3页/共24页一、Mapbasic简介MapBasic的文本编辑大小有限制,不能超过64KB,可用以下三种方法解决:1、用其他的文本编辑器编辑程序文件,再用MapBasic的[File]>[CompileFromFile]编译该程序。2、把一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后用MapBasic的Include语句把多个文件组合成一个应用程序。3、将一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后通过一个项目文件(ProjectFile)把这些小文件连接成一个应用程序。[在某种程度上它与方法二有些相似,但方法三使用起来更有效,因为它可以单独编译每个模块,这就意味着如果你只修改了其中的一个模块,那么你只要对该模块进行重新编译就可以了]第4页/共24页1、了解Mapbasic最基础的内容。(请参阅下页第二部分内容)2、充分利用自带帮助文档。(MapBasic提供了380多种函数和命令语句,可参见《Mapbasic参考手册》)3、借助Mapinfo的mapbasic窗口。(在Mapinfo每操作一步,源代码基本显示在mapbasic窗口,为mapbasic开发中最常用辅助方式,如下图:)一、Mapbasic简介学习MapBasic开发一般方法:

1、勾选2、打开3、查看第5页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数二、Mapbasic基础第6页/共24页二、Mapbasic基础1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数1.注释用英文单引号“’”来标记注释语句。2.程序输写不分大小写。3.一条语句可分两行或多行书写。4.通过Define语句定义标识符,它等价于一个特殊的值。例如:DefineMY_COLORl6711680(Mapbasic.def中用Define语句定义了许多标准MapBasic的标识符。其中包括许多常用的颜色(例如BLACK,WHITE,RED,GREEN,BLUE,CYAN,MAGENTA和YELLOW)和其他标识符,只要在程序开头一般需要输入下语句,就可以任意地使用这些标识符了:Include“mapbasic.def”)5.Include语句的语法:

Include“filename”(这里filename是一个包含有MapBasic语句的文本文件。Filename还可以包括一个目录路径,如果没有指定路径,则编译器在当前工作目录寻找该文件,如果没有发现,则编译器又会在MapBasic安装目录下寻找)第7页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数1、字符串常量:

用两个英文双引号括起来表示的,双引号不是字符串的一部分,字符串常量最长可以有65535个字符。2、数值常量:数值常量又分为整型常数(整型常量)和实型常数(实型常量)。3、逻辑常量:逻辑常量只有两个值True和False。True为1,False为0。4、日期型常量:

2008年12月31日可以用两种方法表示。用八位整数“YYYYMMDD”表示,如20081231。也可以用一个字符串表达式“MM/DD/YYYY”表示,如12/31/2008。二、Mapbasic基础第8页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数1、全局变量:在程序中的任何过程中使用,用Global定义。2、局部变量:只能在定义它的函数或过程中使用,用Dim定义。规则:(1)变量名必须以字母、下划线“_”或者“~”号开头,后面可跟字母、数字、下划线“_”和“#”,变量名最多可含31个字符。不能用MapBasic的关键词作为变量名。(2)MapBasic支持数值类型(如Interger,Float等)、字符类型(如string等)、对象类型(Object,Alias)、逻辑型(Logical)、日期型(如Date)和样式类型(如Pen,Brush,Font,Symbol等)。(3)变量先声明再使用,并且保证声明的类型正确。Dim声明局部变量(dimIasinteger),Global声明全局变量(globaliiasinteger)。(4)MapBasic中只能定义一维数组变量,定义数组变量的方法是在变量后面加一对圆括号,圆括号中设定数组长度。如果在定义数组变量时,没有定义大小则不能赋值,必须用ReDim重新定义大小后才能使用。(5)用Type…EndType语句可以定义一个用户数据类型(CustomDateTypes)。用户数据类型是一个或多个常规变量类型的组。一般情况下,把Type…EndType放在程序的开始处。二、Mapbasic基础第9页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数表达式是由一个或多个常量、变量、函数、表和运算符组成的式子。表达式即可以简单到用一个常量表达,也可以由多个变量、常量、函数、表和操作符组成。例如:一条SQL表达式select*from表XXwhereType=8888二、Mapbasic基础第10页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数运算符是作用于一个或多个常量、变量或其他值,从而产生一个结果,它的表达形式可以是一个字符(如+、*、>)、一个词(如:And、Or、Not)或者是一个词组(如:Contains)。①算术运算符(常用的有:+(加法)、-(减法)、*(乘法)、/(除法)、\(整除)、Mod(取余)、^(乘方))②字符串运算符(常用的有:+、&、Like)“+”和“&”可把两个或多个字符串连接为更长字符串;“Like”执行字符串比较。字符串可含有通配符“_”和“%”,“_”表任意一字符,“%”表任意一或多个字符。③日期运算符(常用的有:加号“+”和减号“-”)一个日期型值加上(或减去)一个整数,将返回一个日期型值,表示该日期以后(或之前)的一个日期。两个日期型值相减将返回一个整型值,表示两个日期之间相隔的天数。④比较运算符(常用的有:=、<>、<、>、<=、>=、Between…And…)比较运算符通过比较两个相同类型的项产生一个逻辑值:TRUE或FASLE。⑤逻辑运算符(常用的有:And、Or、Not)逻辑运算符对两个逻辑值进行运算,结果仍产生一个逻辑值。⑥地理运算符(常用的有:Contains、Within、Intersects)在Mapbasic中,可以使用下列地理运算符对表对象运算,其结果是产生一个逻辑值,例如:运算符

返回TRUE的情况Contains

第一个对象包含第二个对象的中心Intersects两个对象相交注意:运算符的优先级就是指在一个包含多个运算符的复杂表达式中,决定哪一个运算符优先被执行。MapBasic在同一行中的运算符的优先级顺序是:最高优先级:圆括号();乘方^;*,/,Mod,\

+,-,字符串连接(+,&)地理运算符,比较运算符,LikeNotAnd最低优先级:Or二、Mapbasic基础第11页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数流控制结构语句将影响到程序中语句的执行顺序,MapBasic主要有以下三种类型的流控制结构语句:(1).分支语句(IF...Then、GoTo、DoCase)①If...Then语句②Do...Case语句③GoTo语句(2).循环语句(For...Next、Do...Loop、Do...While)①For...Next语句②Do…Loop语句③While...Wend语句(3).提供流控制的其他语句(EndProgram)①结束程序(EndProgram)②结束程序并退出MapInfo(EndMapInfo)二、Mapbasic基础第12页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数一个典型的MapBasic程序由许多过程组成,每个过程都包含一组完成某一特定任务的语句。(1)主过程与子过程每个MapBasic程序至少有一个主过程,其余的过程(称为子过程)都必须由主过程或别的子过程来调用,DeclareSub语句声明下面将定义一个主过程或子过程。(2)过程的调用当MapInfo运行一个已编译好的应用程序时,会自动调用主过程Main。在主过程中又可以通过Call语句调用其他子过程。(3)带参数的过程调用如果一个子过程带有参数,那么它们要在DeclareSub语句和Sub…EndSub语句中先进行声明。声明的方法是在过程名后面加上一对圆括号,括号里列出参数名及其类型。

(4)形式参数传递MapBasic过程参数是以形式参数的方法传递的,使用形式参数应遵循以下规则:·在Call语句中必须指定一个变量名作为形式参数。·如果被调用的子过程赋了一个新的值给形式参数,那么这个新的值将自动存到调用者的变量中。换句话说,子过程可以通过形式参数把值返回给调用者。二、Mapbasic基础第13页/共24页1).基本语法规则2).常量3).变量4).表达式5).运算符6).流程控制结构7).过程8).函数1、标准BASIC函数例如Asc()、Format()、Val()等。2、MapInfo或MapBasic特有函数例如Distance()、ObjectLen()、ObjectGeography()等。3、自定义用户函数定义用户函数语句的语法如下:Function

name([[ByVal]parameterAsdatatype][,[ByVal]parameterAsdatatype...])Asreturn_typestatement_listEndFunction注意:应用程序中可以定义与标准MapBasic函数同名的用户函数。当程序调用这个名字的函数时,真正被调用的是用户函数而不是标准函数。二、Mapbasic基础第14页/共24页<一>、在讲实例之前,我们了解一下如何创建MapBasic程序:1)运行MapBasic开发环境。2)选择[File]>[New]打开一个编辑窗口。3)在编辑窗口中输入一个MapBasic程序(书写代码)。4)选择[File]>[Save],保存该文件,并为该文件输入一个文件名,后缀名为.mb。5)选择[project]>[CompileCurrentFile]<<快捷键为Ctrl+K>>,MapBasic将编译你的程序,并自动生成一个相应的可执行文件(后缀名为.mbx)。6)启动MapInfo系统。7)选择Maplnfo主菜单中的[文件],[运行MapBasic程序],MapInfo提示你选择一个你想运行的程序。注意:双击MapBasic执行文件,可自动打开Mapinfo并加载程序。三、Mapbasic实例第15页/共24页<二>、快速浏览经典的程序模板:Include“mapbasic.def”‘include语句,调用通用定义文件‘其他的Includc语句,如include“menu.def”

Type…EndType语句‘定义用户数据类型

DeclareSub语句‘定义过程,最少都有一个主过程Declaresubmain

DeclareFunction语句‘定义用户函数

Define语句‘定义标识符

Global语句‘定义全局变量

…接下来是主过程定义…SubMain Dim语句‘局部定义变量

EndSub....接着是其他的子过程定义

Sub.... Dim语句

EndSub......用户函数定义....Function.... Dim语句EndFunction三、Mapbasic实例第16页/共24页实例1:

最简单的Mapbasic程序实例要点:体现Mapbasic程序的简易性及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论