第119章 Caché 函数大全 $ZWASCII 函数

78 阅读1分钟

第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)

ZWASCIIZWASCII和ZWCHAR

$ZWCHAR函数是$ZWASCII的逻辑逆函数。例如:

DHC-APP>WRITE $ZWASCII("ab")
25185
DHC-APP>WRITE $ZWCHAR(25185)
ab