美文网首页
第七十一章 Caché 函数大全 $WFIND 函数

第七十一章 Caché 函数大全 $WFIND 函数

作者: Cache技术分享 | 来源:发表于2020-10-31 09:55 被阅读0次

第七十一章 Caché 函数大全 $WFIND 函数

通过值查找子字符串,并返回整数,指定其在字符串中的结束位置,从而识别代理对。

大纲

$WFIND(string,substring,position)
$WF(string,substring,position)

参数

  • string 要搜索的目标字符串。它可以是变量名,数值,字符串文字或任何可解析为字符串的有效ObjectScript表达式。
  • substring 要搜索的子字符串。它可以是变量名,数字值,字符串文字或任何可解析为字符串的有效ObjectScript表达式。
  • position 可选-目标字符串中开始搜索的位置。它必须是一个正整数。

描述

$WFIND返回一个整数,该整数指定字符串中子字符串的结束位置。在计算位置时,它将每个代理对视为一个字符。 $WFIND在功能上与$FIND相同,除了$WFIND识别代理对。它将代理对视为单个字符。可以使用$WISWIDE函数确定字符串是否包含代理对。

代理对是一对16位Caché字符元素,它们一起编码一个Unicode字符。代理对用于代表某些表意文字,这些表意文字用于中文,日文汉字和韩文汉字。 (大多数常用的中文,汉字和汉字字符由标准的16位Unicode编码表示。)代理对为日语JIS X0213:2004(JIS2004)编码标准和中文GB18030编码标准提供了Caché支持。

代理对由在十六进制范围D800至DBFF中的高阶16位字符元素和在十六进制范围DC00至DFFF中的低阶16位字符元素组成。

$WFIND函数将代理对视为单个字符。 $FIND函数将一个代理对计为两个字符。在所有其他方面,$WFIND$FIND在功能上是相同的。但是,由于$FIND通常比$WFIND快,因此对于不太可能遇到代理对的所有情况,$FIND是更可取的。

示例

以下示例显示$WFIND如何将代理对作为返回值中的单个字符进行计数:

/// d ##class(PHA.TEST.Function).WFIND()
ClassMethod WFIND()
{
    IF $SYSTEM.Version.IsUnicode()  {
        SET spair=$CHAR($ZHEX("D806"),$ZHEX("DC06"))
        SET str="ABC"_spair_"DEF"
        WRITE !,$FIND(str,"DE")," $FIND location in string"
        WRITE !,$WFIND(str,"DE")," $WFIND location in string"
    } ELSE {
        WRITE "This example requires a Unicode installation of Caché"
    }
}
DHC-APP>d ##class(PHA.TEST.Function).WFIND()
 
8 $FIND location in string
7 $WFIND location in string

以下示例显示$WFIND如何在位置参数中将代理对作为单个字符进行计数:

/// d ##class(PHA.TEST.Function).WFIND1()
ClassMethod WFIND1()
{
    IF $SYSTEM.Version.IsUnicode()  {
        SET spair=$CHAR($ZHEX("D806"),$ZHEX("DC06"))
        SET str="ABC"_spair_"DEF"
        WRITE !,$FIND(str,"DE",6)," $FIND location in string"
        WRITE !,$WFIND(str,"DE",6)," $WFIND location in string"
    } ELSE {
        WRITE "This example requires a Unicode installation of Caché"
    }
}
DHC-APP>d ##class(PHA.TEST.Function).WFIND1()
 
8 $FIND location in string
0 $WFIND location in string

相关文章

网友评论

      本文标题:第七十一章 Caché 函数大全 $WFIND 函数

      本文链接:https://www.haomeiwen.com/subject/fscsvktx.html