MapBasic基礎(chǔ)入門培訓(xùn)_第1頁
MapBasic基礎(chǔ)入門培訓(xùn)_第2頁
MapBasic基礎(chǔ)入門培訓(xùn)_第3頁
MapBasic基礎(chǔ)入門培訓(xùn)_第4頁
MapBasic基礎(chǔ)入門培訓(xùn)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

會計學(xué)1MapBasic基礎(chǔ)入門培訓(xùn)講課主要內(nèi)容第一部分:Mapbasic簡介第二部分:Mapbasic基礎(chǔ)第三部分:Mapbasic實例第四部分:討論第1頁/共24頁Mapbasic是Mapinfo公司在其桌面產(chǎn)品的基礎(chǔ)上推出的二次開發(fā)工具,用于擴展MapInfo功能,實現(xiàn)程序的自動重復(fù)操作,并使MapInfo與其他應(yīng)用軟件集成等。一、Mapbasic簡介MapBasicMapXMapXtremeSpatialWareMapinfo系列產(chǎn)品MapX性能價格比較好,功能較強的OCX控件,在標準可視化開始環(huán)境下(如VB,C++,.net等),通過其可以將地圖對象嵌入到實際應(yīng)用中。MapXtreme是面向企業(yè)的基于Internet/Intranet的地圖應(yīng)用服務(wù)器.充分利用ISAPI,NSAP和CGI的優(yōu)越性,并可在任務(wù)Web服務(wù)器上運行,與Web服務(wù)器和瀏覽器有較好的兼容性。SpatialWare是在對象-關(guān)系數(shù)據(jù)庫環(huán)境下,基于SQL進行空間查詢和空間分析的空間信息管理系統(tǒng)。可將所有的空間數(shù)據(jù)作為對象進行存儲,可以以現(xiàn)有的柵格圖像文件為基礎(chǔ),利用Mapinfo專題圖,山坡投影和著色技術(shù)生成三維圖像。第2頁/共24頁一、Mapbasic簡介MapBasic集成環(huán)境與特征文本編輯器程序編譯器程序鏈接器聯(lián)機幫助文本編輯器(Editor)用于程序的編輯與修改。程序編譯器(Compiler)用于源程序編譯,以生成可執(zhí)行程序。程序鏈接器(Linker)用于將若干獨立的模塊鏈接成一個應(yīng)用程序。聯(lián)機幫助(Help)則為程序員在線提供MapBasic的每條語句或函數(shù)的詳細說明資料。第3頁/共24頁一、Mapbasic簡介MapBasic的文本編輯大小有限制,不能超過64KB,可用以下三種方法解決:1、用其他的文本編輯器編輯程序文件,再用MapBasic的[File]>[CompileFromFile]編譯該程序。2、把一個大的程序文件(.mb文件)分成兩個或多個較小的文件,然后用MapBasic的Include語句把多個文件組合成一個應(yīng)用程序。3、將一個大的程序文件(.mb文件)分成兩個或多個較小的文件,然后通過一個項目文件(ProjectFile)把這些小文件連接成一個應(yīng)用程序。[在某種程度上它與方法二有些相似,但方法三使用起來更有效,因為它可以單獨編譯每個模塊,這就意味著如果你只修改了其中的一個模塊,那么你只要對該模塊進行重新編譯就可以了]第4頁/共24頁1、了解Mapbasic最基礎(chǔ)的內(nèi)容。(請參閱下頁第二部分內(nèi)容)2、充分利用自帶幫助文檔。(MapBasic提供了380多種函數(shù)和命令語句,可參見《Mapbasic參考手冊》)3、借助Mapinfo的mapbasic窗口。(在Mapinfo每操作一步,源代碼基本顯示在mapbasic窗口,為mapbasic開發(fā)中最常用輔助方式,如下圖:)一、Mapbasic簡介學(xué)習(xí)MapBasic開發(fā)一般方法:

1、勾選2、打開3、查看第5頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)二、Mapbasic基礎(chǔ)第6頁/共24頁二、Mapbasic基礎(chǔ)1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)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還可以包括一個目錄路徑,如果沒有指定路徑,則編譯器在當前工作目錄尋找該文件,如果沒有發(fā)現(xiàn),則編譯器又會在MapBasic安裝目錄下尋找)第7頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)1、字符串常量:

用兩個英文雙引號括起來表示的,雙引號不是字符串的一部分,字符串常量最長可以有65535個字符。2、數(shù)值常量:數(shù)值常量又分為整型常數(shù)(整型常量)和實型常數(shù)(實型常量)。3、邏輯常量:邏輯常量只有兩個值True和False。True為1,F(xiàn)alse為0。4、日期型常量:

2008年12月31日可以用兩種方法表示。用八位整數(shù)“YYYYMMDD”表示,如20081231。也可以用一個字符串表達式“MM/DD/YYYY”表示,如12/31/2008。二、Mapbasic基礎(chǔ)第8頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)1、全局變量:在程序中的任何過程中使用,用Global定義。2、局部變量:只能在定義它的函數(shù)或過程中使用,用Dim定義。規(guī)則:(1)變量名必須以字母、下劃線“_”或者“~”號開頭,后面可跟字母、數(shù)字、下劃線“_”和“#”,變量名最多可含31個字符。不能用MapBasic的關(guān)鍵詞作為變量名。(2)MapBasic支持數(shù)值類型(如Interger,Float等)、字符類型(如string等)、對象類型(Object,Alias)、邏輯型(Logical)、日期型(如Date)和樣式類型(如Pen,Brush,Font,Symbol等)。(3)變量先聲明再使用,并且保證聲明的類型正確。Dim聲明局部變量(dimIasinteger),Global聲明全局變量(globaliiasinteger)。(4)MapBasic中只能定義一維數(shù)組變量,定義數(shù)組變量的方法是在變量后面加一對圓括號,圓括號中設(shè)定數(shù)組長度。如果在定義數(shù)組變量時,沒有定義大小則不能賦值,必須用ReDim重新定義大小后才能使用。(5)用Type…EndType語句可以定義一個用戶數(shù)據(jù)類型(CustomDateTypes)。用戶數(shù)據(jù)類型是一個或多個常規(guī)變量類型的組。一般情況下,把Type…EndType放在程序的開始處。二、Mapbasic基礎(chǔ)第9頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)表達式是由一個或多個常量、變量、函數(shù)、表和運算符組成的式子。表達式即可以簡單到用一個常量表達,也可以由多個變量、常量、函數(shù)、表和操作符組成。例如:一條SQL表達式select*from表XXwhereType=8888二、Mapbasic基礎(chǔ)第10頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)運算符是作用于一個或多個常量、變量或其他值,從而產(chǎn)生一個結(jié)果,它的表達形式可以是一個字符(如+、*、>)、一個詞(如:And、Or、Not)或者是一個詞組(如:Contains)。①算術(shù)運算符(常用的有:+(加法)、-(減法)、*(乘法)、/(除法)、\(整除)、Mod(取余)、^(乘方))②字符串運算符(常用的有:+、&、Like)“+”和“&”可把兩個或多個字符串連接為更長字符串;“Like”執(zhí)行字符串比較。字符串可含有通配符“_”和“%”,“_”表任意一字符,“%”表任意一或多個字符。③日期運算符(常用的有:加號“+”和減號“-”)一個日期型值加上(或減去)一個整數(shù),將返回一個日期型值,表示該日期以后(或之前)的一個日期。兩個日期型值相減將返回一個整型值,表示兩個日期之間相隔的天數(shù)。④比較運算符(常用的有:=、<>、<、>、<=、>=、Between…And…)比較運算符通過比較兩個相同類型的項產(chǎn)生一個邏輯值:TRUE或FASLE。⑤邏輯運算符(常用的有:And、Or、Not)邏輯運算符對兩個邏輯值進行運算,結(jié)果仍產(chǎn)生一個邏輯值。⑥地理運算符(常用的有:Contains、Within、Intersects)在Mapbasic中,可以使用下列地理運算符對表對象運算,其結(jié)果是產(chǎn)生一個邏輯值,例如:運算符

返回TRUE的情況Contains

第一個對象包含第二個對象的中心Intersects兩個對象相交注意:運算符的優(yōu)先級就是指在一個包含多個運算符的復(fù)雜表達式中,決定哪一個運算符優(yōu)先被執(zhí)行。MapBasic在同一行中的運算符的優(yōu)先級順序是:最高優(yōu)先級:圓括號();乘方^;*,/,Mod,\

+,-,字符串連接(+,&)地理運算符,比較運算符,LikeNotAnd最低優(yōu)先級:Or二、Mapbasic基礎(chǔ)第11頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)流控制結(jié)構(gòu)語句將影響到程序中語句的執(zhí)行順序,MapBasic主要有以下三種類型的流控制結(jié)構(gòu)語句:(1).分支語句(IF...Then、GoTo、DoCase)①If...Then語句②Do...Case語句③GoTo語句(2).循環(huán)語句(For...Next、Do...Loop、Do...While)①For...Next語句②Do…Loop語句③While...Wend語句(3).提供流控制的其他語句(EndProgram)①結(jié)束程序(EndProgram)②結(jié)束程序并退出MapInfo(EndMapInfo)二、Mapbasic基礎(chǔ)第12頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)一個典型的MapBasic程序由許多過程組成,每個過程都包含一組完成某一特定任務(wù)的語句。(1)主過程與子過程每個MapBasic程序至少有一個主過程,其余的過程(稱為子過程)都必須由主過程或別的子過程來調(diào)用,DeclareSub語句聲明下面將定義一個主過程或子過程。(2)過程的調(diào)用當MapInfo運行一個已編譯好的應(yīng)用程序時,會自動調(diào)用主過程Main。在主過程中又可以通過Call語句調(diào)用其他子過程。(3)帶參數(shù)的過程調(diào)用如果一個子過程帶有參數(shù),那么它們要在DeclareSub語句和Sub…EndSub語句中先進行聲明。聲明的方法是在過程名后面加上一對圓括號,括號里列出參數(shù)名及其類型。

(4)形式參數(shù)傳遞MapBasic過程參數(shù)是以形式參數(shù)的方法傳遞的,使用形式參數(shù)應(yīng)遵循以下規(guī)則:·在Call語句中必須指定一個變量名作為形式參數(shù)。·如果被調(diào)用的子過程賦了一個新的值給形式參數(shù),那么這個新的值將自動存到調(diào)用者的變量中。換句話說,子過程可以通過形式參數(shù)把值返回給調(diào)用者。二、Mapbasic基礎(chǔ)第13頁/共24頁1).基本語法規(guī)則2).常量3).變量4).表達式5).運算符6).流程控制結(jié)構(gòu)7).過程8).函數(shù)1、標準BASIC函數(shù)例如Asc()、Format()、Val()等。2、MapInfo或MapBasic特有函數(shù)例如Distance()、ObjectLen()、ObjectGeography()等。3、自定義用戶函數(shù)定義用戶函數(shù)語句的語法如下:Function

name([[ByVal]parameterAsdatatype][,[ByVal]parameterAsdatatype...])Asreturn_typestatement_listEndFunction注意:應(yīng)用程序中可以定義與標準MapBasic函數(shù)同名的用戶函數(shù)。當程序調(diào)用這個名字的函數(shù)時,真正被調(diào)用的是用戶函數(shù)而不是標準函數(shù)。二、Mapbasic基礎(chǔ)第14頁/共24頁<一>、在講實例之前,我們了解一下如何創(chuàng)建MapBasic程序:1)運行MapBasic開發(fā)環(huán)境。2)選擇[File]>[New]打開一個編輯窗口。3)在編輯窗口中輸入一個MapBasic程序(書寫代碼)。4)選擇[File]>[Save],保存該文件,并為該文件輸入一個文件名,后綴名為.mb。5)選擇[project]>[CompileCurrentFile]<<快捷鍵為Ctrl+K>>,MapBasic將編譯你的程序,并自動生成一個相應(yīng)的可執(zhí)行文件(后綴名為.mbx)。6)啟動MapInfo系統(tǒng)。7)選擇Maplnfo主菜單中的[文件],[運行MapBasic程序],MapInfo提示你選擇一個你想運行的程序。注意:雙擊MapBasic執(zhí)行文件,可自動打開Mapinfo并加載程序。三、Mapbasic實例第15頁/共24頁<二>、快速瀏覽經(jīng)典的程序模板:Include“mapbasic.def”‘include語句,調(diào)用通用定義文件‘其他的Includc語句,如include“menu.def”

Type…EndType語句‘定義用戶數(shù)據(jù)類型

DeclareSub語句‘定義過程,最少都有一個主過程Declaresubmain

DeclareFunction語句‘定義用戶函數(shù)

Define語句‘定義標識符

Global語句‘定義全局變量

…接下來是主過程定義…SubMain Dim語句‘局部定義變量

EndSub....接著是其他的子過程定義

Sub.... Dim語句

EndSub......用戶函數(shù)定義....Function.... Dim語句EndFunction三、Mapbasic實例第16頁/共24頁實例1:

最簡單的Mapbasic程序?qū)嵗c:體現(xiàn)Mapbasic程序的簡易性及

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論