比较字符串 和数字串
要比较字符 串(类型 C)和数字 文本(类型 N),可以 在逻辑表达 式中使用下 列运算符。
<运算符> |
含 义 |
CO |
仅包 含 |
CN |
不仅 包含 |
CA |
包 含任何 |
NA |
不 包含任何 |
CS |
包 含字符串 |
NS |
不 包含字符串 |
CP |
包含模 式 |
NP |
不包 含模式 |
因为除类型 N 和 C 外,系统不 能执行任何 其它类型转 换,所以, 在进行包含 这些运算之 一的比较时 ,操作数应 该是类型 N 或 C。
运算符的功 能如下:
CO (仅包含)
如果 <F1> 仅包含 <F2> 中的字符, 则逻辑表达 式
<F1> CO <F2>
为真。该比 较区分大小写,并包括 尾部空格。 如果比较结果为真,则 系统字段 SY-FDPOS 包括 <F1> 的长度。如 果为假,则 SY-FDPOS 包含 <F1> 中第一个未 在 <F2> 内出现的字符的偏移量 。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'BD ' |
CO |
'ABCD ' |
真 |
5 |
区分 |
仅仅包含 |
'BD ' |
CO |
'ABCDE' |
假 |
2 |
区分 |
仅仅包含 |
CN (不仅包含 )
如果 <F1> 还包含 <F2> 之外的其他 字符,则逻辑表达式
<F1> CN <F2>
为真。该比较区分大小 写,并包括 尾部空格。 如果比较结果为真,则 系统字段 SY-FDPOS 包含 <F1> 中第一个未 同时在 <F2> 中出现的字符的偏移量 。如果为假 ,SY-FDPOS 包含 <F1> 的长度。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'ABC12' |
CN |
'ABCD ' |
真 |
3 |
区分 |
不仅仅包含 |
'ABABC' |
CN |
'ABCD ' |
假 |
5 |
区分 |
不仅仅包含 |
CA (包含任何 )
如果 <F1> 至少包含 <F2> 的一个字符 ,则逻辑表 达式
<F1> CA <F2>
为真。该比 较区分大小写。如果比 较结果为真 ,则系统字 段 SY-FDPOS 包含 <F1> 中第一个也 在 <F2> 中出现的字 符的偏移量 。如果为假 ,SY-FDPOS 包含 <F1> 的长度。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'ABcde' |
CA |
'Bd ' |
真 |
1 |
区分 |
包含任何 |
'ABcde' |
CA |
'bD ' |
假 |
5 |
区分 |
包含任何 |
NA (不包含任 何)
如果 <F1> 不包含 <F2> 的任何字符 ,则逻辑表 达式
<F1> NA <F2>
为真。该比 较区分大小 写。如果比 较结果为真 ,则系统字 段 SY-FDPOS 包含 <F1>的 长度。如果 为假,则 SY-FDPOS 包含 <F1> 中在 <F2> 内出现的第 一个字符的 偏移量。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'ABAB ' |
NA |
'AB ' |
假 |
0 |
区分 |
不包含任何 |
'ababa' |
NA |
'AB ' |
真 |
5 |
区分 |
不包含任何 |
CS (包含字符 串)
如果 <F1> 包含字符串 <F2>, 则逻辑表达 式
<F1> CS <F2>
为真。忽略 尾部空格并 且比较不区分大小写。 如果比较结 果为真,则 系统字段 SY-FDPOS 包含 <F2> 在 <F1> 中的偏移量 。如果为假 ,SY-FDPOS 包含 <F1> 的长度。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
含义 |
大小写 |
'ABcde' |
CS |
'bC ' |
真 |
1 |
包含字符串 |
不区分 |
'ABcde' |
CS |
'ce ' |
假 |
5 |
包含字符串 |
不区分 |
NS (不包含字 符串)
如果 <F1> 不包含字符 串 <F2>, 则逻辑表达 式
<F1> NS <F2>
为真。忽略 尾部空格且 比较不区分 大小写。如 果比较为真 ,系统字段 SY-FDPOS 包含 <F1> 的长度。如 果为假,系 统字段 SY-FDPOS 包含 <F2> 在 <F1> 中的偏移量 。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
含义 |
大小写 |
'ABcde' |
NS |
'bC ' |
假 |
1 |
不包含字符串 |
不区分 |
'ABcde' |
NS |
'ce ' |
真 |
5 |
不包含字符串 |
不区分 |
CP (包含模式 )
如果 <F1> 包含模式 <F2>, 则逻辑表达 式
<F1> CP <F2>
为真。如果 <F2> 属于类型 C,则可以 在 <F2> 中使用下列 通配符:
_ * 用于任何字 符串
_ + 用于任何单 个字符
忽略尾部空 格且比较不 区分大小写 。如果比较 结果为真, 系统字段 SY-FDPOS 包含 <F2> 在 <F1> 中的偏移量 。如果为假 ,SY-FDPOS 包含 <F1> 的长度。
如果要对 <F2> 中的特殊字 符进行比较 ,请将换码 字符 # 放到其前面 。可以使用 换码字符 # 指定
_ 大小写字 符
_ 通配符 "*"(输 入 #*)
_ 通配符 "+" (输入 #+)
_ 换码符号 本身 (输入 ##)
_ 字符串结 尾的空格 (输入 #___)
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'ABcde' |
CP |
'*b*' |
真 |
1 |
不区分 |
包含模式 |
'ABcde' |
CP |
'*#b*' |
假 |
5 |
不区分 |
包含模式 |
NP (不包含模 式)
如果 <F1> 不包含模式 <F2>, 则逻辑表达 式
<F1> NP <F2>
为真。在<F2>中 ,可以使用 与 CP 相同的通配 符和换码字 符。
忽略尾部空 格且比较不 区分大小写 。如果比较 结果为真, 则系统字段 SY-FDPOS 包含 <F1>. 的长度,如 果为假,SY-FDPOS 包含 <F2> 在 <F1> 中的偏移量 。
DATA: F1(5) TYPE C VALUE<F1>,
F2(5) TYPE C VALUE <F2>.
IF F1 <operator> F2.
WRITE: / 'Comparison true, SY-FDPOS=', SY-FDPOS.
ELSE.
WRITE: / 'Comparison false, SY-FDPOS=', SY-FDPOS.
ENDIF.
下表列出该 程序的执行 结果,取决 于所用的运 算符和 F1 / F2 字段。
<F1> |
<operator> |
<F2> |
Result |
SY-FDPOS |
大小写 |
含义 |
'ABcde' |
NP |
'*b*' |
假 |
1 |
不区分 |
不包含模式 |
'ABcde' |
NP |
'*#b*' |
真 |
5 |
不区分 |
不包含模式 |