PB笔记(二)语法

一.基础语法规则

1.注释行

1)作用域从双斜杠(//)开始,到该行尾结束.

2)块注释

作用域从结束,其中包含的代码全是注释内容.

2.大小写

一般不区分大小写.

3.标识符

1)必须以字母开头(A到z),其余字符可以是字母或者数字,最长为40个字符.

2)可以使用的特殊字符有

连接符:-

下划线:_

美元符:$

号码符:#

百分号:%

不可使用空格.

4.续行符&:

它可以使一条语句分多行编写.

例:

name="wangying&

ping"

5.分隔符";"

在一行写多条语句

例:

Integer i;a=b+c;i=a

二.运算符

四种运算符:

算术运算符

关系运算符

逻辑运算符

字符串连接运算符:"+"

三.数据类型

1.标准数据类型

 数据类型 含义
 Blob二进制大对象,用于保存大量的数据,如:位图,大文本等. 
 Boolean 布尔型,True或False
 Char 单个ASCII字符
 Date 日期,包括年,月,日
 Datetime 将日期和时间合并为一个数据类型.
 Decimal 有符号的十进制数,最大精度可达18位.
 Double 有符号的浮点数,精度为15位,范围从2.2E-308到1.7E+308
 Int 16位有符号数,范围从-32768到+32767
 Long 32位有符号数,范围从-2,147,483,648到+2,147,483,648
 Real 有符号的浮点数,精度为6位,范围从1.17E-38到3.4E+38
 String ASCII字符串,长度从0到59,999
 Time 24小时制时间,即小时,分,秒及秒的小数位(长度位)
 Uint 16位无符号整数,范围从0到65,535
 Ulong 32位无符号整数,范围从0到4,294,967,295

2.系统对象数据类型

3.枚举数据类型

枚举变量可以赋值给一组固定的值,该固定值以叹号(!)结束.

四.变量

1.作用域

1).Global全局变量

在整个应用程序中都可访问的变量.

2).Instrance实例变量

该类型的变量在一个对象(窗口,菜单,应用程序等)中定义,可以在该对象的任何处访问它们.

3).Shared共享变量

Shared与Instrance的相同之处也是在一个对象中定义的,不同之处是Instrance只与该对象的某个事例相关,而Shared与该对象的类相关.因此可以为该对象类的所有事例访问.

4).Local局部变量

在脚本中定义,因此也仅可在脚本中使用.

2.Instrance的访问权限

1)Public

PB缺省的访问权限.

2)Private

仅可在定义变量的对象的脚本中访问.

3)Protected

Protected变量的访问权限与Private变量相似,但Protected变量不仅可以为声明它的变量访问,还可以为继承它的对象的脚本访问.

以上是3种基本的访问权限,此外Instrance还支持如下4种扩展的访问权限.

.ProtectedRead:只有定义变量的对象和其后代的脚本才有权对该变量执行读操作.

.ProtectedWrite:只有定义变量的对象和其后代的脚本才有权对该变量执行写操作.

.PrivateRead:只有定义变量的对象的脚本方可对该变量挂靠 读操作.

.PrivateWrite:只有定义变量的对象的脚本方可对该变量执行写操作.

五.常量

1.声明常量使用关键字Constant

例:

constant Integer lizi_code=20

定义常量并对其赋值后不可修改.

六.数组

数组是有序的变量的集合.

数组可分为:

.一维数组

.二维数组

.多维数组

.动态数组

1.一维数组

1)声明数组

声明时设置数组的下标

例:

Integer A[4]

一个名为A的整型数组,数组中包含的元素为:A[1],A[2],A[3],A[4]

注:在缺省情况下,数组元素的下标值从1开始,直到声明的设定值.

如有特殊要求,也可以在下标中指明.

例:

Integer B[3 To 10]

不例声明的数组B包括下标值从3到10的8个元素,即从B3到B10.

2)赋值

.可以一次为一个数组元素赋值:B[3]=15

.也可以一次为多个数组元素赋值:

Integer Code[5]

Code={1,2,3,4,5}

2.动态数组与多维数组

1)动态数组

.动态数组即不定长数组.

.当定义数组时如果不知道数组的长度,则应使用动态数组.

声明动态数组时,在方括号中不设定数组的下标:

Integer Li[]

2)二维数组及多维数组

.定义数组时,下标用逗号分开.例:

Integer Lizi[2,3]

七.代词

.当引用一个对象时,可以不使用该对象的名称,而使用相应的代词.

This

Parent

Super

1.This

其代替对象本身.

例一个命令按钮:cb_close

This.enabled=false

等价于:

cb_close.enabled=false

2.Parent

.表示所在对象的父对象

例在一个窗口w_main中有一个按钮,在其按钮中有一命令:

Close(Parent)

等价于:

Close(w_main)

3.Super

.只有在处理继承时才使用Super代词,Super用于引用一个后代对象的直接祖先.

例如,如果要在当前窗口的Close事件中执行其祖先窗口w_ance的Close事件脚本,应在当前窗口的Close事件中添加如下代码:

Call Super::Close

等价于

Call w_ance::Close

八.语句

1.流程控制

1)IF THEN语句

. If condition then

action

End if

. If condition1 then

Beep(1)

elseif condition2 then

Beep(2)

else

Beep(3)

end if

Beep(1)喇叭响一下;  Beep(2)喇叭响二下;  Beep(3)喇叭响三下.

2)CHOOSE CASE

.choose case testexpression

case expressionlist

statementblock

{...}

{case else

statementblock}

end choose

.textexpression:要测试的表达式

.expressionList:表达式列表,有如下方式:

(1)一个单独的值,如3,"ab"等.

(2)一组用逗号分开的值,如:1,3,5,7.

(3)用to表示的一个区间的数据,如:1 to 20.

(4)用IS表示测试值,再加上关系运算符和比较值,如: IS<20.

(5)以上方式的结合使用,之间用逗号分开.

3)DO...LOOP

.循环语句

.有4种格式

(1)

DO UNTIL condition

statementblock

LOOP

执行循环语句,直到condition条件表达式为True.如果第一次测试表达式的值就为True,则不执行循环体中的语句.

例:

Integer A=1

do until A>10

Beep(A)

A=A+1

loop

上例重复执行Beep函数,直到A大于10为止.

(2)

do while condition

statementblock

loop

当condition条件表达式为True,执行循环语句.如果第一次测试表达式的值为False,则不执行循环体中的语句.

例:

Integer A=1

do while A<=10

Beep(A)

A=A+1

loop

当A小于等于10时,重复执行Beep函数.

(3)

do

statementblock

loop until condition

这种循环语句至少运行一次,直到condition条件表达式的值为True时为止.

(4)

do

statementblock

loop while condition

这种循环语句至少运行一次,当condition条件表达式的值为True时继续运行,直到condition条件表达式的值为False时为止.

4)FOR...NEXT

for varname=start to end {step increment}

statementblock

next

其中:

.varname:循环变量

.start:起始值

.end:终止值

.increment:步长

2.其它语句

1)HALT

中断应用程序的执行.

格式:

HALT {CLOSE}

说明:

如果语句中有CLOSE选项,则执行应用程序的CLOSE事件处理程序.

中断之前,首先执行应用程序的CLOSE事件处理程序.

2)CREATE

.创建非可视类用户对象

.在 PB语言中,有两类用户对象:

(1)可视类

(2)非可视类

用户对象.

创建可视类用户对象使用Open()函数.

创建非可视用户对象要使用CREATE语句.

格式:

objectvariable=creatE objecttype

.objectvariable:对象变量

.objecttype:对象数据类型

例:

transaction DBTrans

DBTrans=create transaction

DBTrans.DBMS="ODBC"

3)DESTROY

删除由CREATE语句创建的对象

格式:

destroy objectvariable

4)RETURN

从脚本中返回调用程序.

例:

if arg2<>0 then

return arg1/arg2

else

return -1

end if

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值