本部分主要给出了VF与字符相关的函数:
(1)求字符串长度函数
格式:LEN(<字符表达式>)
功能:返回制定字符表达式的长度,即所包含的字符个数。函数值为数值型
例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20
(2)大小写转换函数
格式:LOWER(<字符表达式>)
UPPER(<字符表达式>)
功能:LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变
UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。
例如:LOWER(‘X1y2A’)=x1y2a UPPER(‘n=1’)=N=1
(3)空ge字符串生成函数
格式:SPACE(<字符表达式>)
功能:返回指定数目的空ge组成的字符串。
(4)删除前后空ge函数
格式:TRIM(<字符表达式>)
LTRIM(<字符表达式>)
ALLTRIM(<字符表达式>)
功能:TRIM():返回指定字符表达式值去掉尾部空ge后形成的字符串
LTRIM():返回指定字符表达式值去掉前导空ge后形成的字符串
ALLTRIM():返回指定字符表达式值去掉前导空ge和尾部空ge后形成的字符串。
例如:STORE SPACE(1)+”TEST”+SPACE(3) TO SS
?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
LEN(SS)=8,LEN(TRIM(SS))=5,LEN(LTRIM(SS))=7,LEN(ALLTRIM(SS))=4
(5)取子串函数
格式:LEFT(<字符表达式>,<长度>)
RIGHT(<字符表达式>,<长度>)
SUBSTR(<字符表达式>,<起始位置>,<长度>)
功能:LEFT(): 从指定表达式值的左端取一个指定长度的子串作为函数值。
RIGHT():从指定表达式值的右端取一个指定长度的子串作为函数值。
SUBSTR():从指定表达式值的起始位置取指定长度的子串作为函数值。
例如:STORE “GOOD BYE!” TO X
LEFT(X,2)=GO,SUBSTR(X,6,2)+SUBSTR(X,6)=BYBYE!,RIGHT(X,3)=YE!
(6)计算子串出现次数函数
格式:OCCURS(<字符表达式1>,<字符表达式2>)
功能:返回第一个字符串在第二个字符串中出现的次数。
例如:STORE ‘abracadabra’ TO S
OCCURS(‘a’,S)=5, OCCURS(‘b’,S)=2, OCCURS(‘c’,S)=1, OCCURS(‘e’,S)=0
(7)求子串位置函数
格式:AT(<字符表达式1>,<字符表达式2>,<数值表达式>)
ATC(<字符表达式1>,<字符表达式2>,<数值表达式>)
功能:验证表达式1是否是表达式2的子串,如果是,返回表达式1的首字符在表达式2中的位置,若不是,则为0
ATC()与AT()的功能类似,但比较时不区分大小写
例如: STORE”This is Visual FoxPro” TO X
AT(“fox”,X)=0,ATC(“fox”,X)=16,AT(“is”,X,3)=10,AT(“xo”,X)
(8)子串替换函数
格式:STUFF( <字符表达式1>,<起始位置>,<长度>,<字符表达式2>)
功能:用<字符表达式2>的值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。
例如:STORE ‘GOOD BYE!’ TO S1
STORE ‘MORNING’ TO S2
?STUFF(S1,6,3,S2)=GOOD MORNING!
?STUFF(S1,1,4,S2)=MORNING BYE!
(9)字符替换函数
格式:CHRTRAN(<字符表达式1>,<字符表达式2>,<字符表达式3>)
功能:当第一个字符中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符中的对应字符(相同位置)替换这些字符。如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将会被铲除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多于字符被删掉。
例如:CHRTRAN(“ABACAD”,”ACD”,”X12”)=XBX1X2
CHRTRAN(“计算机ABC”,”计算机”,”电脑”)=电脑ABC
CHRTRAN(“大家好!”,”大家”,”您”)=您好!
总结:第二个表达式没有的照写,第三个表达式没有的去掉。
(10)字符串匹配函数
格式:LIKE(<字符表达式1>,<字符表达式2>)
功能:比较两个字符串对应位置上的字符,若所有对应字符相匹配,函数返回逻辑真(.T.)否则返回逻辑假(.F.)
<字符表达式1>中可以包含通配符*和?。*可与任何数目的字符相匹配,?可以与任何单个字符相匹配。
例如:
STORE “abc” to x
STORE “abcd” to y
LIKE(“ab*”,x)=.T. LIKE(“ab*”,y)=.T. LIKE (x,y)=.F.
LIKE(“?b?”,x)=.T. LIKE(“ABc”,x)=.F
新闻热点
疑难解答