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
.
日期和时间函数
1.系统日期和时间函数:
格式:DATE():返回当前系统日期,函数值为日期型
TIME():以24小时制 、HH:MM:SS格式返回当前系统时间(字符型)
DATETIME():返回当前系统日期时间,函数值为日期时间型
2.求年份、月份、天数函数
格式:YEAR(<日期表达式>|<日期时间表达式>)
MONTH(<日期表达式>|<日期时间表达式>)
DAY(<日期表达式>|<日期时间表达式>)
3.时、分和秒函数
格式:HOUR(<日期时间表达式>)
MINUTE(<日期时间表达式>)
SEC(<日期时间表达式>)
数据类型转换函数
1.数值转换成字符串
格式:STR(<数值表达式>,<长度>,<小数位数>)
例如:STORE –123.456 TO N
STR(N,9,2)=-123.46,STR(N,6,2)=-123.5
STR(N,3)=***,STR(N,6)=-123,STR(N)=-123
2.字符串转换成字符
格式:VAL(<字符表达式>)
例如:STORE ‘-123.’ TO X,STORT ‘45’ TO Y
STORE ’A45’ TO Z
