第119章 Caché 函数大全 $ZWASCII 函数
将两个字节的字符串转换为数字。
大纲
$ZWASCII(string,position)
$ZWA(string,position)
参数
- string 一个字符串。它可以是值,变量或表达式。它的长度必须至少为两个字节。
- position 可选-字符串中的起始位置,以正整数表示。默认值为1。位置以单字节而不是两字节的字符串计。该位置不能是字符串中的最后一个字节,也不能超出字符串的末尾。通过截断十进制数字,除去前导零和加号等,将数字位置值解析为整数。
描述
$ZWASCII返回的值取决于使用的参数。
$ZWASCII(string)返回从字符串的第一个字符位置开始的两字节字符串的数字解释。$ZWASCII(string,position)返回一个两个字节的字符串的数字解释,该字符串从由position指定的起始字节位置开始。
成功完成后,$ZWASCII始终返回正整数。如果string的长度无效,或position的值无效,则$ZWASCII返回-1。
示例
下面的示例确定字符串“ab”的数字解释:
DHC-APP>WRITE $ZWASCII("ab")
25185
以下示例也返回25185:
DHC-APP>WRITE !,$ZWASCII("ab",1)
25185
DHC-APP>WRITE !,$ZWASCII("abxx",1)
25185
DHC-APP>WRITE !,$ZWASCII("xxabxx",3)
25185
在以下示例中,字符串或位置无效。 $ZWASCII函数在每种情况下均返回–1:
/// d ##class(PHA.TEST.Function).ZWASCII()
ClassMethod ZWASCII()
{
WRITE !,$ZWASCII("a")
WRITE !,$ZWASCII("aba",3)
WRITE !,$ZWASCII("ababab",99)
WRITE !,$ZWASCII("ababab",0)
WRITE !,$ZWASCII("ababab",-1)
}
DHC-APP>d ##class(PHA.TEST.Function).ZWASCII()
-1
-1
-1
-1
-1
注意
$ZWASCII和$ASCII
$ZWASCII类似于$ASCII,不同之处在于它操作两个字节(16位)字,而不是单个8位字节。对于4字节(32位)字,使用$ZLASCII;对于8字节(64位)字,使用$ZQASCII。
$ZWASCII(string,position)在功能上等同于:
$ASCII(string,position+1)*256+$ASCII(string,position)
ZWCHAR
$ZWCHAR函数是$ZWASCII的逻辑逆函数。例如:
DHC-APP>WRITE $ZWASCII("ab")
25185
DHC-APP>WRITE $ZWCHAR(25185)
ab