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 

包含了时间和日期,它们由逗号分开。第一部分是日期的数字,它是从18401231日开始计算日期的数字。第二部分是秒的数字,它是从午夜开始计算的。

例如:

>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 +300Berlin -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

posted @ 2012-09-19 20:27  451  阅读(1402)  评论(0编辑  收藏  举报