cache object script基本结构---Cache变量,变量名称,定义,特殊的变量
Cache变量,变量名称,定义,特殊的变量
按存储方式分:临时变量和持久变量。后者以多维数组的形式存于硬盘的存储结构中。
按访问方式分:本地变量和全局变量。Cache的全局变量又不同于我们常见的面向对象编程中的全局变量的特点。
变量名称规则
Caché ObjectScript 不限定变量的长度。然而只有前31个字符是重要的,如果前31个字符一样的变量,是被看作
为一个的。变量的名称必须是以大写或者小写的字符或者是用% 符来开头。
变量的定义
COS里面变量的定义一共有三个函数:
Set: set a=”b”
Read: set “b”,
For: for a=1:1:N
变量的删除
Kill: kill a
注意!!!***!!!:在terminal终端环境下如果只输入一个kill,则会删掉所有的global。
一些特殊的变量
这些特殊的变量有指定的含义,它们一般以$ 开头。有个别特殊变量也同时支持缩写(注意下划线) 下面介绍一些常见的特殊变量:
$HALT 很有用
如果$HALT 指定出一个routine 即程序模块的名字,当语句被执行的时候这个routine将被调用。
例如:
SET $HALT="MyTrap^CleanupRoutine"
WRITE !,"the halt trap is: ",$HALT
$HOROLOG 很有用
$Horolog
包含了时间和日期,它们由逗号分开。第一部分是日期的数字,它是从1840年12月31日开始计算日期的数字。第二部分是秒的数字,它是从午夜开始计算的。
例如:
>WRITE $HOROLOG
57713,36814
>WRITE $PIECE($H,",",2)
36815
>WRITE +$H
57713
$I O
$IO 表示正在使用的输入输出设备的名称。
例如:
>USE "TTA3:" WRITE $IO
TTA3:
$JOB 很有用
$JOB 包含一个正整数,表示系统所分配给每一个在执行中的进程独一无二的编号。当进程还在的时候,$JOB 的值是不变的。
例如:
>WRITE $JOB
1024
$KEY
$KEY 包含了上一个由read 命令读的最后一个字符。
例如:
>WRITE $KEY
<Return>
$PRINCIPAL
和$IO 类似,$PRINCIPAL 包含了当前进程开始采用的设备的名称。
例如:
>WRITE $PRINCIPAL
|TRM|:|8724
$QUIT 很有用
$QUIT 在调用用户定义的函数中的值是1,在其它的时候值为0。
例如:
>WRITE $QUIT
0
$STORAGE
$STORAGE 以字节为单位表示空间的大小。
例如:
>WRITE $STORAGE
15845
$TEST 很有用
$TEST用作测试某一个表达式的真假。它和"IF "搭配使用,也可以和 OPEN 、LOCK 、 READ和 JOB 一起使用。
例如:
>IF A=5 WRITE $TEST
1 (如果 A=5 时)
>OPEN DEV::10 WRITE $TEST
1 (如果OPEN 命令在10秒以内曾被成功执行时)
$X
$X 光标在输出设备的水平坐标的位置 。
例如:
>IF $X>79 WRITE !
$Y
$Y光标在输出设备的垂直坐标的位置。
例如:
>IF $Y>59 WRITE #
$ZA
表示在当前的设备上的上一个READ 命令的状态。
例如:
>WRITE $ZA#2
1
$ZB
$ZB 和$KEY 一样。
例如:
>WRITE $ZB
<Return>
$ZC HILD
用 JOB 命令执行的上一个进程的进程ID。如果值是0 ,那么就没有进程被执行。
例如:
>WRITE $ZCHILD
37
$ZEOF
$ZEOF 表示是不是已经到了文件的结尾了。如果值是-1 的话,就是已经到了结尾了。
例如:
>IF $ZEOF CLOSE FILE
$ZH OROLOG
$ZHOROLOG 返回的值包含了Caché 开始以后计时的秒数和毫秒数两个部分。
例如:
>WRITE $ZHOROLOG
2365.632
$ZIO
$ZIO 表示现在的终端设备的连接类型。
例如:
>Write $ZIO
192.9.200.79/1260
$ZJOB
$ZJOB 以二进制数的形式表示当前的JOB 的信息。
例如:
>WRITE $ZJOB
5
$ZMODE
$ZMODE 包含了刚被OPEN 或者USE访问的设备变量的值。
例如:
>WRITE $ZMODE
RY\ISM\
$ZN AME
$ZNAME 表示当前被读出来的ROUTINE的名字。
>WRITE $ZNAME
Rec112
$ZN SPACE
$ZNSPACE 表示当前命名空间的名字。它可以用来切换命名空间,效果和 ZNSPACE 命令是一样的。
例如:
>WRITE $ZNSPACE
USER
$ZP ARENT
$ZPARENT 包含正在运行的由 JOB 创建的进程ID。如果值是0 ,则没有这样的进程。
例如:
>WRITE $ZPARENT
0
$ZPI
$ZPI 包含PI 的值:3.141592653589...
例如:
>Write $ZPI
3.141592653589793238
$ZR EFERENCE
$ZREFERENCE 提供了一个对最近常访问的GLOBAL 的引用。
例如:
>SET ^G(1)="HELLO"
>WRITE $ZREFERENCE
^G(1)
$ZS TORAGE
$ZSTORAGE 包含了可以给Caché 进程使用的空间的大小(KB为单位)。
例如:
>WRITE $ZSTORAGE
24
$ZT IMES TAMP
和$HOROLOG 类似,$ZTIMESTAMP 包含了时间的日期、时间、和毫秒数。
例如:
>WRITE $ZTS
57500,11608.52
$ZT IMEZ ONE
$ZTIMEZONE 包含了GMT(格林威治平均时区)往西的相差时间的分钟数。
例如:
Boston 是+300,Berlin 是 -60 。
>Write $ZTZ
300
$ZVERSION
$ZVERSION 返回的是当前Caché 的版本号
例如
USER>w $zversion
Cache for Windows (x86-32) 2010.2.8 (Build 1104U) Sat Feb 11 2012 12:56:34 EST