首页 百科知识 语言中的几个基本问题

语言中的几个基本问题

时间:2022-06-19 百科知识 版权反馈
【摘要】:一、AML语言中的几个基本问题1.符号和语法<>——角括号,角括号内的参数必须给出。|——参数的分割号,表示选择其中的一个参数。2.变量1)变量类型与命名规则AML中的变量包括全局变量、局部变量、程序变量、指针变量和保留变量。在AML中的变量名与所用操作系统标准规则相同,一个变量名<=32各字符,不区分大小写。在条件许可的情况下,尽量使用局部变量。

一、AML语言中的几个基本问题

1.符号和语法

<>——角括号,角括号内的参数必须给出。如&USAGE<directive|function>

{}——大括号,大括号内的参数是选择参数,可以给,也可以不给。

|——参数的分割号,表示选择其中的一个参数。

*——指定交互坐标输入或者交互命令对话形式。如:MAPEXTENT*,用鼠标在屏幕上定义图层的范围。

#——默认符(占位符),对于选择参数系统都有默认值,但如果默认符后没有用户指定的选择参数,则此默认符可省略。

例:COPY<from_geo_dataset>{to_geo_dataset}{DEFAULT|SINGLE|DOUBLE}如to_ geo_dataset与from_geo_dataset同名,复制为单精度型,则命令参数为:

COPY<from_geo_dataset>#SINGLE

&——AML指令的执行符号,出现于AML指令前。另外,在有些AML指令的关键字变量前也加&符号。如:&WATCH<&OFF|&DISPLAY>

[]——AML函数符号。如:[TYPE]

~——AML语句的续行符号,当一个语句一行写不完时,行末加上~符号,表示下一行是继续行。

;——程序分隔符,多行语句可以写在一行,之间用“;”隔开。

%%——引用变量,如%X2%、%.X2%,注意两者的区别:前者为引用局部变量,而后者为引用全局变量。

{!…!}——行分割符。如:MAPEXTENT SOIL{!1 2 3 4!}等价于:MAPEXTENT SOIL1 SOIL2 SOIL3 SOIL4。

/*——注释说明符,起说明作用。/*可以在AML程序中的任何一行。

2.变量

1)变量类型与命名规则

AML中的变量包括全局变量、局部变量、程序变量、指针变量和保留变量。在AML中的变量名与所用操作系统标准规则相同,一个变量名<=32各字符,不区分大小写。在条件许可的情况下,尽量使用局部变量。

变量可以直接赋值,而不必首先定义。

(1)全局变量。全局变量以“.”号做前缀,一旦定义,则一直储存于内存,直到被删除或退出ARC/INFO,哪怕AML程序结束,只要没有退出ARC/INFO,全局变量还会存在。

(2)局部变量。局部变量没有“.”号做前缀,只在定义该变量的程序执行过程中有效。

(3)程序变量。程序变量由系统而不是用户定义,以“:”号做前缀。程序变量名为“:program”,表示当前所处模块,其值可能为ARC、ARCEDIT、ARCPLOT、INFO等(大写)。如:

Arcedit:&lv:program

Program::PROGRAMARCEDIT

(4)保留变量。保留变量也是系统自定义的变量,以三个字符加“$”号为前缀,后面的字符视情形而定。如通过鼠标指定一个点,则可以通过读取保留变量PNT$X和PNT$Y得到横坐标和纵坐标值。

(5)指针变量。指针变量是一种特殊类型的AML程序变量,它总是与图层的属性表、info文件的记录或关系数据库表的行联系在一起,用于显示或改变该指针指向记录的值。指针变量总是和CURSOR指令配合使用,基本语法为:

:<cursor_name>.<item_name>

CURSOR指令在ARC、ARCEDIT、ARCPLOT和INFO模块下都可以使用,语法和功能大致相同。下面以ARCEDIT模块下指针变量的使用为例:

CURSOR指令语法:

CURSOR<OPEN|CLOSE|FIRST|NEXT|PREVIOUS|record_number>

OPEN打开指针

CLOSE关闭指针

FIRST将指针移向第一条记录

NEXT将指针移向下一条记录

PREVIOUS将指针移向上一条记录

record_number将指针移向指定的记录

使用指针变量操作步骤如下:

第一步:选择要素

在ARCEDIT下要使用指针变量,必须先选择要素,产生一个选择集。

第二步:打开指针

CURSOR OPEN

在ARCEDIT只能产生一个选择记录集,因此也只能有一个指针,指针变量名为“:EDIT”。在ARC和ARCPLOT下可以产生多个指针变量。

第三步:移动指针

可以用CURSOR FIRST、CURSOR NEXT、CURSOR PREVIOUS或CURSOR record_number将指针移动到指定记录。

第四步:显示或改变记录中的字段值

第五步:关闭指针

CURSOR CLOSE

以下是使用指针显示和改变记录中字段属性值的操作实例:

产生一个指针变量后,系统将选择的记录集全部读入内存,通过指针对记录的操作都是在内存中完成的,因此比直接用ARC/INFO指令操作记录速度要快得多,在处理大数据量时很有优势。

2)变量的引用

引用变量时将变量名用两个“%”括起来,但如果当变量为数组变量时,可用函数[VALUE]读取。

3)数组变量

AML不能直接定义数组变量,但可以通过变量的循环嵌套来定义,如:

&do I=1&to 10

&setvar var%I%=I

&end

这样就定义了一个数组var1、var2、…、var10,在引用数组变量时,可用函数[VALUE],如:

&do I=1&to 10

&type[value var%I%]

&end

4)变量的连接和运算

字符串变量的连接

&setvar var1武汉大学

&setvar var2资环学院

&setvar var3武汉大学%var2%或&setvar var3%var1%%var2%

数值型变量的运算

&setvar var1 10

&setvar var2 2

&setvar var3%var1%+%var2%

&setvar var3%var1%*%var2%

&setvar var3[cal%var1%+%var2%]*100

3.文件名

AML系统有两类文件:宏命令文件和菜单文件。宏命令文件将ARC/INFO命令组织起来,从而使许多复杂的命令操作更容易执行;菜单文件提供了一种方便使用的图形界面,使用者只要进行简单的鼠标操作就可以方便地选取和执行需要的操作。

任何一个AML文件名或菜单(MENU)文件名与所用操作系统标准规则相同。为了便于管理和利用,一般的AML文件名的后缀用.aml结尾,菜单文件名的后缀以.menu结尾,在运行时可以省略扩展名,用户也可以用其他扩展名,但运行时必须带扩展名。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈