pml基础语法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分:基础知识PML基本概念ProgrammableMacroLanguage可编程宏语言.通常的PML开发包括两部分,一部分是PML宏,脚本语言;另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏,就是一系列pml命令的集合.通过$m执行.格式为:$mfilename[param1param2….](举例)其中param1为参数,宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1.变量的定义及用法在PML2中,每一个变量都是对象.变量名以!或者!!开头,例如!weight.!开头的变量为局部变量,!!开头的为全局变量.PML内置了常用的变量类型.(1)Real实属类型.提供基本的四则运算操作.例如!a=10!b=10!a=!a+!b$p$!a--输出变量a的值(2)String字符串类型.例如!strName=‘/EQUI-TEST-1’(3)Boolean用于逻辑表达式.值只能是true/false(4)Array数组(5)Position(6)Direction3.变量的创建,删除,查看变量可以用赋值来创建.例如!str=‘abc’也可以用类型标识来创建.!str=string()!str=‘abc’删除:!str.delete()查看:通常使用qvar!str也可以用$p$!str4.方法(method)和函数(Function)Method是一个对象的子程序.只有当对象存在,才可以调用对象的方法.例如!strNum=‘123’!num=!strNum.Real()$p$!num以上的代码,调用的string类型的real()方法,将字符串转换为数字,并输出.函数的用法与方法类似,同样有参数和返回值.但函数是独立存在的,全局的.在任何地方,都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum=0Do!iFrom1To100By1!sum=!sum+!iEnddo其中!i为循环变量,初始值为1,终指为100,步长为1.当步长为1是,一般省略.(2)中断Break:中断并跳出最内层循环(3)跳过Skip.跳过当此存换.例如!sum=0Do!iFrom1To100By1Skipif(int(!i/2)eq(!i/2))$*跳过所有的偶数!sum=!sum+!iEnddo2.逻辑控制语句格式为if()then…else…其中括号内的必须是表达式.例如:IF(TYPEOFOWNEREQ‘BRAN’)THEN$PBRANCH$!!CE.OWNER.NAMEELSEIF(TYPEEQ‘BRAN’)THEN$PBRANCH$!!CE.NAMEELSE$PNOTBRANCHENDIF其中elseif/else可选,elseif可多个.3.跳转语句定义标记Label/label1跳转Golabel/gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组)Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+-*/(2)连接运算符&(3)比较运算符LTGTEQNEQ(4)逻辑运算符ANDORNOT4.计算函数Sqrt(x)Power(x,e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头.–之前不可出现空格之外的字符单行注释$*.$*之后的内容为注释.$*之前可出现其他字符段落注释.用$(和$)将注释内容包括进来.(举例)6.打印$p打印内容例如$ptestline打印多行$pline1$Line2输出内容包括变量$pce.nameis$!!ce.name其中$为转义字符,如果要输出$,则使用$$7.异常处理程序运行中,可能需要意料之中的可能发生的异常/错误,例如节点创建失败,遍历子节点时超过最后一个等等.这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site/TEST_SITEHandle(2,109)$*$p节点不存在Endhandle其中(2,109)为错误编号.也可以使用handleany捕捉任意类型的错误.(2)捕捉多个异常Site/TEST_SITEHandle(2,109)$*$p节点不存在Elsehandle(2,108)$p/TEST_SITE节点存在,但不是SITE类型elsehandlenone$pSite/TEST_SITE节点存在endhandle其中handlenone表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Definemethod.方法名(参数1is类型,参数2is类型…)is返回值类型其中参数可没有返回值可以没有例如Definemethod.Sum(!aisreal,!bisreal)isreal!sum=!a+!bReturn!numendmethod(2)自定义函数Definefunction!!sum(!aisreal,!bisreal)isreal!sum=!a+!bReturn!numendFunction与方法类似.一个文件里只能定义一个函数,扩展名为pmlfnc,必须放在指定的文件夹下,并执行pmlrehashall(3)自定义对象Defineobject对象名endobject五.文件处理(1)读取!file=objectFILE(‘d:\abc123.txt')!lines=!file.ReadFile()Qvar!lines(2)写入!arr=array()!arr.append(‘line1’)!arr.append(‘line1’)!file=objectFILE('d:\abc.txt')!file.WriteFile('WRITE',!arr)$*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm=!!alert.confirm('确定要删除吗?')if(!confirmneq'YES')thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUPFORM!!custumFormTITLE'自定义对话框’Text.text1‘点击按钮’Button.okExit这是一个最简单的对话框,显示一个文本框加上按钮,但是点击按钮不会有任何反应.(截图)3.对话框调用/初始化PmlhashallPmlreloadform!!custumFormShow!!custumForm4.默认构造方法/初始化方法每个form初始化时,会自动调用与其名字相同的方法.在刚才的代码中加上Definemethod.custumForm()!this.text1.tag=‘初始化完成’Endmethod除此以外,还可以加上默认的初始化函数在开头加上一行!this.initcall='!this.init()',调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应,例如点击按钮,选择下拉框等,用callback关联.SETUPFORM!!custumFormTITLE'自定义对话框’Text.text1‘点击按钮’Button.ok‘OK’ExitDefinemethod.custumForm()!this.text1.tag=‘初始化完成’!this.ok.callback=‘!this.ok()’EndmethodDefinemethod.ok()!!alert.message(‘OK’)Endmethod此时,点击按钮,会弹出对话框.(截图)

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功