pml基础语法.doc_第1页
pml基础语法.doc_第2页
pml基础语法.doc_第3页
pml基础语法.doc_第4页
pml基础语法.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1. PML宏(Macro)宏, 就是一系列pml命令的集合. 通过$m执行. 格式为: $m filename param1 param2 . (举例)其中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() 查看:通常使用 q var! str 也可以用$p $!str4. 方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如 !strNum = 123 !num = !strNum.Real() $p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二. 程序的结构控制1. 循环语句(1) Do循环例如:!sum = 0Do !i From 1 To 100 By 1 !sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2) 中断Break: 中断并跳出最内层循环(3) 跳过 Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1 Skip if ( int(!i / 2) eq (!i / 2) $* 跳过所有的偶数 !sum = !sum + !iEnddo2. 逻辑控制语句格式为if () then else 其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ BRAN) THEN $P BRANCH $!CE.OWNER.NAMEELSEIF (TYPE EQ BRAN) THEN $P BRANCH $!CE.NAMEELSE $P NOT BRANCHENDIF其中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) 比较运算符LT GT EQ NEQ(4) 逻辑运算符 AND OR NOT4. 计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5. 注释单行注释 用开头. 之前不可出现空格之外的字符单行注释 $*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6. 打印$p 打印内容例如 $p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $! 其中$为转义字符, 如果要输出$, 则使用$7. 异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1) 异常捕捉例如Site /TEST_SITEHandle (2, 109) $* $p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2) 捕捉多个异常Site /TEST_SITEHandle (2, 109) $* $p节点不存在Elsehandle (2, 108) $p /TEST_SITE节点存在, 但不是SITE类型elsehandle none $p Site /TEST_SITE节点存在endhandle 其中handle none表示没有遇到错误的情况.四. 用户自定义方法/用自定义函数/自定义对象(1) 自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型) is 返回值类型 其中 参数可没有 返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2) 自定义函数Define function !sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3) 自定义对象Define object 对象名endobject五. 文件处理(1) 读取 !file = object FILE(d:abc123.txt)!lines = !file.ReadFile() Q var!lines (2) 写入!arr = array()!arr.append(line1)!arr.append(line1)!file = object FILE(d:abc.txt)!file.WriteFile(WRITE, ! arr) $*将数组!arr写入文件 其中Write可以换成OVERWRITE(覆盖)和APPEND(追加)六. 对话框及菜单1. 系统对话框(1) 询问!alert!confirm = !alert.confirm(确定要删除吗?) if(!confirm neq YES) then return endif(2) 警告!alert.message(message)(3) 错误提示!alert.error(error)2. 自定义对话框SETUP FORM !custumForm TITLE 自定义对话框 Text .text1 点击按钮 Button .ok Exit 这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3. 对话框调用/初始化Pmlhash allPml reload form !custumFormShow !custumForm4. 默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm() !this.text1.tag = 初始化完成Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = !this.init(), 调用构造方法结束,显示之前,会自动调用init()方法5. 界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !custumForm TITLE 自定义对话框 Tex

温馨提示

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

评论

0/150

提交评论