第四十章 Caché 命令大全 PRINT ZPRINT 命令
第四十章 Caché 命令大全 PRINT ZPRINT 命令
显示当前设备上当前例程的代码行。
重点
- 注意:
PRINT
和ZPRINT
命令在功能上是相同的。 - 类文件不行,只能打印例程。
大纲
PRINT:pc lineref1:lineref2
ZP:pc lineref1:lineref2
参数
- pc 可选-后置条件表达式。
- lineref1 可选-要显示的行,或要显示的行范围内的第一行,指定为文字。可以是标签名称,数字偏移量(+ n)或标签名称和数字偏移量。如果省略,则显示整个当前例程。
- :lineref2 可选-要显示的一系列行中的最后一行,指定为文字。要定义范围,必须指定lineref1。
描述
PRINT
命令显示当前加载的例程中的代码行。使用ZLOAD
加载例程。 ZLOAD
加载例程的INT代码版本。对于当前例程的名称,请访问$ZNAME
特殊变量。
输出将发送到当前设备。从终端调用时,当前输出设备默认为终端。可以使用USE
命令建立当前设备。对于当前设备的设备ID,请访问$IO
特殊变量。
注意:PRINT
和ZPRINT
命令在功能上是相同的。
PRINT
显示例程的INT代码版本。 INT代码不计算或不包含预处理程序语句。例程的MAC版本中的完全空白行(无论是在源代码中还是在多行注释中)都由编译器删除,因此在INT例程中既不显示也不计数。因此,PRINT
在MAC例程中将以下多行注释显示为两行,而不是三行:
/* This comment includes
a blank line */
MAC代码中的#;
,##;
和///
注释可能不会出现在INT代码中,因此可能会影响行数和偏移量。
PRINT
将编辑指针设置为其打印的行的末尾。例如,指定PRINT
,然后ZINSERT“ SET y = 2”
将该行插入例程的末尾;指定PRINT +1:+4
,然后ZINSERT“ SET y = 2”
将该行插入为第5行。$TEXT
函数从当前例程中打印一行,但不更改编辑指针。
PRINT
有两种形式:
- 有参
- 无参
不带参数的PRINT
显示当前加载的例程中的所有代码行。
带参数的PRINT
显示指定的代码行。 PRINT lineref1显示由lineref1指定的行。PRINT lineref1:lineref2显示以lineref1开头并以lineref2(含端点)结尾的行范围。
lineref参数使用例程的INT代码版本对行和行偏移进行计数。修改例程后,必须重新编译PRINT例程,以正确计算与源(MAC)版本相对应的行和行偏移量。
可以使用$TEXT
函数返回一行INT代码。
参数
pc
可选的后置条件表达式。如果后置条件表达式为true(计算为非零数值),则Caché执行PRINT命令。如果后置条件表达式为假(计算为零),则Caché不执行命令。
lineref1
要打印的行或要显示或打印的行范围中的第一行。可以用以下两种语法形式之一指定:
- +offset其中offset是一个正整数,指定当前例程中的行号。 +1是例程中的第一行,可以是标签行。 +0始终返回空字符串。
- label [+ offset],其中label是例程中的标签,而offset是从标签开始计数的行号(标签本身计数为offset 0)。如果省略偏移选项,或指定label + 0,则Caché将打印标签行。 label + 1在标签之后打印该行。
标签的长度可能超过31个字符,但在前31个字符内必须唯一。 PRINT
仅匹配指定标签的前31个字符。标签名称区分大小写,并且可能包含Unicode字符。
lineref2
要显示的行范围中的最后一行。以与lineref1相同的方式进行指定。必须指定lineref1才能指定lineref2。 lineref1和lineref2用冒号(:)字符分隔。在冒号和lineref2之间可能没有空格。
如果lineref2在行序列中指定的标签或偏移量早于lineref1,则PRINT
会忽略lineref2并显示由lineref1指定的单行代码。
如果lineref2指定不存在的标签或偏移量,则PRINT
从lineref1显示到例程的末尾。
示例
给出以下代码行:
不带行引用参数的PRINT
显示所有九行,包括注释行。
AviationLetters
Abc
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "C is Charlie",!
Def WRITE "D is Delta",!
WRITE "E is Epsilon",!
/* Not sure about E */
WRITE "F is Foxtrot",!
PRINT +0
PRINT +1
PRINT +8
PRINT +10
PRINT Def
PRINT Def+1
- 不带行引用参数的
PRINT
显示所有九行,包括注释行。 PRINT +0
显示空字符串。PRINT +1
显示AviationLetters标签。PRINT +8
显示/* Not sure about E */
注释行。PRINT +10
显示空字符串。PRINT Def
或PRINT Def + 0
显示Def WRITE“ D is Delta” ,!
行。这是一个标签行,还包括可执行代码。PRINT Def + 1
显示WRITE“ E is Epsilon” ,!
行。
DHC-APP>d AviationLetters^PHA.TEST.Command
A is Abel
B is Baker
C is Charlie
D is Delta
E is Epsilon
F is Foxtrot
AviationLetters
/* Not sure about E */
PRINT +0
Def WRITE "D is Delta",!
WRITE "E is Epsilon",!
范围示例
AviationLetters
Abc
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "C is Charlie",!
Def WRITE "D is Delta",!
WRITE "E is Epsilon",!
/* Not sure about E */
WRITE "F is Foxtrot",!
PRINT +0:+3
PRINT +1:+3
PRINT +3:+3
PRINT +3:+1
PRINT +3:Abc+1
PRINT +3:abc+1
PRINT Abc+1:+4
PRINT Abc+1:Abc+2
PRINT Abc:Def
PRINT Abc+1:Def
PRINT Def:Abc
PRINT +0:+3
显示空字符串。PRINT +1:+3
显示前三行。PRINT +3:+3
显示第三行。PRINT +3:+1
显示第三行; lineref2被忽略。PRINT +3:Abc + 1
显示第三行。 lineref1和lineref2都指定同一行。PRINT +3:abc + 1
从第三行显示到例程末尾。行标签区分大小写,因此未找到范围终点。PRINT Abc + 1:+4
显示行3和4。PRINT Abc + 1:Abc + 2
显示行3和4。PRINT Abc:Def
显示第2、3、4、5和6行。PRINT Abc + 1:Def
显示第3、4、5和6行。PRINT Def:Abc
显示Def WRITE“ D is Delta” ,!行。由于lineref2在代码的前面,因此将被忽略。
DHC-APP>d AviationLetters^PHA.TEST.Command
A is Abel
B is Baker
C is Charlie
D is Delta
E is Epsilon
F is Foxtrot
AviationLetters
Abc
WRITE "A is Abel",!
WRITE "A is Abel",!
WRITE "A is Abel",!
WRITE "A is Abel",!
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "C is Charlie",!
Def WRITE "D is Delta",!
WRITE "E is Epsilon",!
/* Not sure about E */
WRITE "F is Foxtrot",!
PRINT +0:+3
PRINT +1:+3
PRINT +3:+3
PRINT +3:+1
PRINT +3:Abc+1
PRINT +3:abc+1
PRINT Abc+1:+4
PRINT Abc+1:Abc+2
PRINT Abc:Def
PRINT Abc+1:Def
PRINT Def:Abc
abc()
SET a=1,b=1,c=8
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "A is Abel",!
WRITE "B is Baker",!
Abc
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "C is Charlie",!
Def WRITE "D is Delta",!
WRITE "A is Abel",!
WRITE "B is Baker",!
WRITE "C is Charlie",!
Def WRITE "D is Delta",!
Def WRITE "D is Delta",!
相关文章
- WinDBG 调试命令大全
- Tcpdump命令抓包详细分析
- cd命令
- 第十九章 SQL命令 CREATE TABLE(六)
- 第四十七章 Caché 命令大全 DO (旧版) 命令
- 第三十三章 Caché 命令大全 XECUTE 命令
- 第三十章 Caché 命令大全 VIEW 命令
- 第二十二章 Caché 命令大全 RETURN 命令
- 第十二章 Caché 命令大全 HANG 命令
- 第七章 Caché 命令大全 ELSE 命令
- 第五章 Caché 命令大全 DO 命令
- 第三章 Caché 命令大全 CLOSE 命令
- UBOOT启动流程——向量表重定位、命令处理——学习笔记
- Linux命令之less
- Linux命令之scp
- Linux命令大全
- Win10秘笈:重置组策略/安全策略命令大全
- 大数据学习——hive显示命令
- console命令详解
- lsscsi命令(lsscsi -t -L)能很方便的看出哪些是固态硬盘或其他类型
- 英国上议院通过调查权力法案 ISP无需法院命令即可存储用户记录
- 华为eNSP基础命令
- Linux Set命令
- 跟屌丝大哥学习DB2---DB2 runstats、reorgchk、reorg 命令
- fdisk 创建和维护磁盘分区命令(MBR分区方案)
- 用于软件包管理的21个Linux YUM命令 转载
- MongoDB基础篇:MongoDB Shell命令大全
- Linux命令大全