1.Các chức năng cơ bản của ngôn ngữ Mapbasic
a) Khả năng
thương mại hoá Mapinfo
MapBasic là ngôn ngữ lập trình trong môi trường
Mapinfo. Nó là một phần mềm hệ thông tin bản đồ cho phép chúng ta thương mại
hoá và tự động hoá Mapinfo.
Một ứng dụng của MapBasic cho phép thay đổi hoặc
thay thế các menu chuẩn của Mapinfo, thêm mới hoàn toàn thanh menu Mapinfo và
tạo cho người dùng những hộp thoại điều khiển theo ý. Như vậy, MapBasic cho
phép bạn tạo ra các hệ thống giao diện giúp cho người dùng thuận lợi nhanh
chóng.
b) Khả năng
tự động hoá Mapinfo.
Những ứng dụng của MapBasic là thường được dùng
để giúp cho người dùng tiết kiệm thời gian, tiện lợi cho việc sử dụng. Ví dụ,
một người dùng Mapinfo để xây dựng một hệ thống lưới toạ độ (theo kinh độ và vĩ
độ) khi tạo ra bản đồ. Nếu vẽ bằng tay sẽ mất nhiều thời gian, công sức và
không chính xác, vì mỗi đường trong lưới cần được vẽ với độ chính xác về kinh
độ và vĩ độ. Tuy nhiên một ứng dụng của MapBasic có thể làm việc đó rất dễ mà
nhanh chóng, chính xác.
c) Công cụ
đánh giá dữ liệu.
Chúng ta có thể hiển thị những thông tin yêu cầu
về cơ sở dữ liệu với một cấu trúc MapBasic đơn giản. Ví dụ, bằng cách dùng lệnh
Select (được mô phỏng trong ngôn ngữ chuẩn SQL), ta có thể hỏi về dữ liệu, ứng
dụng cho phép lọc để đưa ra màn hình bất kỳ những bản ghi nào mong muốn, sắp
xếp và tổng hợp các kết quả theo yêu cầu. Chúng ta có thể thực hiện tất cả
những công việc đó với cấu trúc lệnh của MapBasic.
Sử dụng cấu trúc của MapBasic ta có thể chọn và
cập nhật (Select & Update) số liệu thông qua Code (mã) các ngôn ngữ lập
trình khác.
d) Tính gọn
nhẹ của MapBasic.
Các ứng dụng MapBasic gọn nhẹ. Nếu bạn phát triển
một ứng dụng sử dụng MapBasic cho Windows bạn có thể chạy ứng dụng đó trên
Mapinfo cho Macintosh.
Tính gọn nhẹ của MapBasic còn có nghĩa là giảm
công việc cho chúng ta, người lập trình. Bạn có thể phát triển ngay các ứng
dụng của mình và sau đó, áp dụng nó cho tất cả các khách hàng sử dụng Windows
hoặc Macintosh. Tính gọn nhẹ của MapBasic cho phép bạn phân phối chương trình
của mình cho những sử dụng một cách rộng rãi.
Nói chung, bạn không cần thay đổi chương trình để
làm cho nó tương thích khi chạy trên các phần cứng khác. Một số phần mềm khác
không có khả năng này
e) Khả năng
liên kết với các ứng dụng khác.
Chúng ta không bị giới hạn bởi các cấu trúc và
các chức năng được xây dựng đối với ngôn ngữ lập trình. Vì MapBasic cho phép
cấu trúc mở, các chương trình của bạn có thể gọi các thủ tục trong các thư
viện. Vì, nếu bạn cần các chức năng mà không có trong các lệnh của MapBasic,
cấu trúc mở của MapBasic cho phép bạn thực hiện được.
Các chương trình MapBasic có thể sử dụng dữ liệu
chuyển đổi động DDE (Dynamic Data exchange) để liên kết với các phần mềm khác,
bao gồm các ứng dụng của VisualBasic. Các chương trình MapBasic cũng có thể gọi
các thủ tục trong thư viện các File liên kết động của Windows DLL (Windows
Dynamic Link Labary). Bạn có thể có các File DLL từ các nguồn thương mại, hoặc
bạn có thể viết các File DLL riêng sử dụng các ngôn ngữ lập trình như C hoặc
Pascal.
MapBasic 4.0 cung cấp những khả năng mới, lập bản
đồ liên kết, cho phép chúng ta liên kết các chức năng của Mapinfo với các ứng
dụng được viết trong các môi trường phát triển khác như VisualBasic.
2. Cấu trúc ngôn ngữ Mapbasic
Mục này mô tả cơ sở của chương trình MapBasic mà bạn có thể sử dụng trong ứng dụng của bạn, bao gồm các biến biểu, hằng, hàm, cấu trúc chương trình....
a) File và kiểu File
Bảng File và kiểu File
Tên
Ý nghĩa
Errors. Doc
MapBasic Exe
MapBasic Def
Menu. Def
Icons. Def
MapBasic. hlp
MapBasic. h
MapBasic. Bas
*. Mb
*. mbp
*. mbx
*. Mbo
*. Err
File Text liệt kê các mã lỗi
File chương trình chạy môI trường cao MapBasic
File chứa các mã định nghĩa
Include File chứa các mã menu tương ứng
Include File chứa các mã biểu tượng ButtonPad và con trỏ tương ứng
File trợ giúp
File tên cho người lập trình C/C++tương tự như MapBasic.def nhưng sử dụng cấu trúc C/C++
File tên cho lập trình bằng VisualBasic, nội dung tương tự như MapBasic.def nhưng sử dụng cấu trúc VisualBasic.
Các chương trình mẫu, khi chúng ta dùng môI trường MapBasic, tạo ra File với các phần mở rộng như sau:
File chương trình nguồn
File thực hiện (đã dịch)
File đối tượng Object (liệt kê các Modul trong một File đối tượng).
Các File đối tượng (được tạo ra sau khi dịch các Modul trong đối tượng).
Liệt kê các lỗi, được tạo nếu chúng dịch
b) Các biến và hằng
Các biến phải được sử dụng trước khi sử dụng chúng trong chương trình MapBasic. Các biến được khai báo bằng dòng lệnh Dim.
Cú pháp như sau:
Dim <tên biến> as (kiểu biến) (Integer....)
Bạn có thể khai báo cùng một lúc nhiều biến trong dòng lệnh Dim.
Tên biến: Tên biến phải bắt đầu bằng chữ, chữ gạch chân ( _ ), dấu sóng (~), nhưng không chấp nhận một ký tự trắng trong tên biến. Tên biến dài nhất 31 ký tự và trong đó có thể chứa các kiểu sau:
Chữ, số, ký hiệu (#), chữ gạch chân ( _ )
Một tên biến có thể kết thúc với $, %, &, !, @. Từ khoá của MapBasic như if, Note và Print, đều không được sử dụng làm tên biến.
Các kiểu dữ liệu:
Bảng Các kiểu dữ liệu cho các biến
Tên kiểu (1)
Mô tả (Phạm vi của kiểu) (2)
Smalllnt
Số nguyên (giá trị trong khoảng –32767 đến 32767 )
Iteger
Số nguyên (giá trị trong khoảng –2 tỷ đến 2tỷ)
Float
Số thực (dấu phẩy động)
String
Sâu ký tự (nhiều nhất là 32000 ký tự)
String * n
Cố định độ dài ký tự (dàI n ký tự)
Logical
True hay False (đúng hay sai)
Date
Kiểu ngày
Object
Đối tượng đồ hoạ
Alias
Tham chiếu cột của bảng
Pen
Kiểu vẽ nét (line)
Brush
Kiểu tô màu
Font
Kiểu phông chữ
Symbol
Ký tự lạ
Mảng: Để định nghĩa mảng ta dùng lệnh Dim, ví dụ:
Dim users (10) as String
Ví dụ trên định nghĩa một mảng gồm10 phần tử, các phần tử thuộc kiểu xâu ký tự.
Mỗi một phần tử của mảng có địa chỉ theo tên của mảng và số thứ tự của phần tử đó. Users (6) là phần tử thứ 6 của mảng. MapBasic cho phép bạn định nghĩa mảng với số phần tử lớn nhất là 7000, nhỏ nhất là 1, phần tử đầu tiên trong mảng thì có địa chỉ là phần tử 1.
Bạn có thể tạo một mảng mà trong đó có chứa một số kiểu biến do người dùng định nghĩa. Kích cỡ của mảng phải được khai báo là một hằng số nguyên.
Định nghĩa kiểu dữ liệu người dùng:
MapBasic cho phép bạn định nghĩa kiểu dữ liệu thông qua cụm từ Type...End Type. Đây là cấu trúc toàn cục nên phải được dùng trong các cấp toàn cục, không được dùng trong bất kể một hàm nào. Mặc dù các kiểu dữ liệu phải được khai báo cấp toàn cục, bạn vẫn có thể định nghĩa các biến địa phương của các kiểu đó không cần thủ tục và hàm như sau:
Type Person
Fullname as String
Age As Smallint
Dateofbirth As Date
End Type
Global Sales _ mgr, sale _ people (10) as person
Mỗi một lệnh Type định nghĩa 1 kiểu dữ liệu. Bạn có thể sử dụng lệnh Dim và Global để định nghĩa các biến của Type. Ví dụ dưới đây định nghĩa biến sử dụng cho nhiều kiểu Person từ ví dụ trên và ấn định dữ liệu cho chúng.
Dim contact as Person
Contact. Fullname = “Mr.Smith”
Contact.age = 43
Contact.dateofbirth = “06/11/50”
Để thâm nhập vào các phần tử của kiểu ta làm như sau:
<tên biến>.<tên phần tử>. Trong ví dụ trên Contact là một biến kiểu Person. Contact. Fullname là một phần tử nằm trong Person.
Biểu thức:
Biểu thức trong MapBasic là sự liên hệ giữa các hằng số, biến, hàm, toán tử (Operator). Các toán tử trong biểu thức phải cùng kiểu biến mà đã được định nghĩa.
Ví dụ: Bạn không thể có biểu thức kiểu String và kiểu Date.
Cấu trúc của biểu thức
<tên biến> = <biểu thức>
Mảng và các biến có những kiểu khác nhau thì phải được ấn định một giá trị cho từng phần tử trong một lần.
Định nghĩa biến toàn cục:
Tất cả các biến đượckhai báo với từ khoá Dim là biến địa phương. Chúng tồn tại chỉ trong các thủ tục (Procedure) mới được định nghĩa. Còn biến toàn cục thì sử dụng trong cả chương trình. Ví dụ biến địa phương định nghĩa trong thủ tục chính thì không thể dùng trong thủ tục bên trong được như là biến toàn cục.
Biến toàn cục phải được định nghĩa trong cấp toàn cục đó, phải nằm ngoài mọi thủ tục (Procedure) và phải đứng trước mọi thủ tục sử dụng nó.
Declare sub Other
Include “MapBasic . DEF”
Declare sub Main
Global gx,gy as Float
Global status as String, start date as Date
Sub Main
gx = 0
gy = 0
Call Other
End sub
Sub Other
Dim x, y as Float
x = gx
End Sub
Bảng Bảng các hàm chuyển đổi của MapBasic
Asr()
Chuyển đổi ký tự ra mã ANSI
Chr$()
Chuyển đổi mã ANSI ra ký tự
Fix()
Cho phần nguyên
Int()
Cho số nguyên gần nhất
Make Brush()
Cho giá trị Brush
Make Font()
Cho giá trị Font
Make Symbol()
Cho giá trị Symbol
Make Pen()
Cho giá trị Pen
Str$()
Cho giá trị kiểu String
String to Date()
Biến đổi kiểu String thành biến Date
Biến gx và gy được định nghĩa ngoài các thủ tục nên chúng là biến toàn cục.
Dòng lệnh Global định nghĩa là biến toàn cục.
Hàm chuyển đổi:
MapBasic cung cấp cho bạn các hàm số có thể chuyển đổi giữa các dữ liệu với nhau.
Hằng số:
Một hằng số thì giá trị của nó không thay đổi trong các chương trình.
Một hằng là sâu ký tự (String) thì bắt đầu và kết thúc bởi dấu nháy kép (“)
Có thể phân các phần trong xâu ký tự bằng các cặp dấu (“).
Có thể có dấu nháy đơn trong xâu ký tự đó, chương trình coi đó là ký tự.
Hằng số logic chỉ có thể là 1 (True) hoặc 0 (False). Bởi MapBasic đã định nghĩa File MapBasic.def nên bạn có thể sử dụng từ True và False như là giá trị hằng logic.
Có thể ấn định biểu thức (String) ký tự cho 1 biến kiểu Alias.
Trường ngày (Date) sử dụng trong các dạng sau:
m-d-y, m/d/y, m/d, m-d.
Các phép toán
Các phép toán so sánh:
So sánh 2 giá trị trong cùng 1 kiểu để nhận được giá trị kiểu logic, giá trị (True họăc False).
Phép toán so sánh thường được dùng trong biểu thức điều kiện.
Bảng Bảng các phép toán so sánh
Phép toán
ý nghĩa
Ví dụ
=
< >
<
>
<=
>=
So sánh bằng nhau
So sánh khác
So sánh nhỏ hơn
So sánh lớn hơn
Nhỏ hơn hoặc bằng
Lớn hơn hoặc bằng
a= b
a< > b
a< b
a> b
a<= b
a>=b
Ngoài ra còn có kiểu so sánh khác nữa:
Between...End
Giá trị True nếu số đo lớn hơn hoặc bằng giá trị nhỏ hơn hoặc bằng giá trị trên.
Bảng Bảng các phép toán logic
Phép toán
ý nghĩa
Ví dụ
And
Or
Not
Cả hai cùng nhận giá trị True
Một trong hai nhận giá trị True
Giá trị phủ định
aAnd b
a Or b
Not a
Các phép toán học số
Bảng Bảng các phép toán học số
Phép toán
ý nghĩa
Ví dụ
+
Phép cộng
-
Phép trừ
*
Phép nhân
/
Phép chia
\
Lấy số nguyên của phép chia
Mod
Lấy số lẻ của phép chia
^
Phép tính luỹ thừa
Tên
|
Ý nghĩa
|
Errors. Doc
MapBasic Exe
MapBasic Def
Menu. Def
Icons. Def
MapBasic. hlp
MapBasic. h
MapBasic. Bas
*. Mb
*. mbp
*. mbx
*. Mbo
*. Err
|
File Text liệt kê các mã lỗi
File chương trình chạy môI trường cao MapBasic
File chứa các mã định nghĩa
Include File chứa các mã menu tương ứng
Include File chứa các mã biểu tượng ButtonPad và con trỏ tương ứng
File trợ giúp
File tên cho người lập trình C/C++tương tự như MapBasic.def nhưng sử dụng cấu trúc C/C++
File tên cho lập trình bằng VisualBasic, nội dung tương tự như MapBasic.def nhưng sử dụng cấu trúc VisualBasic.
Các chương trình mẫu, khi chúng ta dùng môI trường MapBasic, tạo ra File với các phần mở rộng như sau:
File chương trình nguồn
File thực hiện (đã dịch)
File đối tượng Object (liệt kê các Modul trong một File đối tượng).
Các File đối tượng (được tạo ra sau khi dịch các Modul trong đối tượng).
Liệt kê các lỗi, được tạo nếu chúng dịch
|
Tên kiểu (1)
|
Mô tả (Phạm vi của kiểu) (2)
|
Smalllnt
|
Số nguyên (giá trị trong khoảng –32767 đến 32767 )
|
Iteger
|
Số nguyên (giá trị trong khoảng –2 tỷ đến 2tỷ)
|
Float
|
Số thực (dấu phẩy động)
|
String
|
Sâu ký tự (nhiều nhất là 32000 ký tự)
|
String * n
|
Cố định độ dài ký tự (dàI n ký tự)
|
Logical
|
True hay False (đúng hay sai)
|
Date
|
Kiểu ngày
|
Object
|
Đối tượng đồ hoạ
|
Alias
|
Tham chiếu cột của bảng
|
Pen
|
Kiểu vẽ nét (line)
|
Brush
|
Kiểu tô màu
|
Font
|
Kiểu phông chữ
|
Symbol
|
Ký tự lạ
|
Asr()
|
Chuyển đổi ký tự ra mã ANSI
|
Chr$()
|
Chuyển đổi mã ANSI ra ký tự
|
Fix()
|
Cho phần nguyên
|
Int()
|
Cho số nguyên gần nhất
|
Make Brush()
|
Cho giá trị Brush
|
Make Font()
|
Cho giá trị Font
|
Make Symbol()
|
Cho giá trị Symbol
|
Make Pen()
|
Cho giá trị Pen
|
Str$()
|
Cho giá trị kiểu String
|
String to Date()
|
Biến đổi kiểu String thành biến Date
|
Phép toán
|
ý nghĩa
|
Ví dụ
|
=
< >
<
>
<=
>=
|
So sánh bằng nhau
So sánh khác
So sánh nhỏ hơn
So sánh lớn hơn
Nhỏ hơn hoặc bằng
Lớn hơn hoặc bằng
|
a= b
a< > b
a< b
a> b
a<= b
a>=b
|
Phép toán
|
ý nghĩa
|
Ví dụ
|
And
Or
Not
|
Cả hai cùng nhận giá trị True
Một trong hai nhận giá trị True
Giá trị phủ định
|
aAnd b
a Or b
Not a
|
Phép toán
|
ý nghĩa
|
Ví dụ
|
+
|
Phép cộng
| |
-
|
Phép trừ
| |
*
|
Phép nhân
| |
/
|
Phép chia
| |
\
|
Lấy số nguyên của phép chia
| |
Mod
|
Lấy số lẻ của phép chia
| |
^
|
Phép tính luỹ thừa
|
Hãy like nếu bài viết có ích →
Kết bạn với gisgpsrs trên Facebook
để nhận bài viết mới nóng hổi
Không có nhận xét nào:
Đăng nhận xét