###############################################
数值函数:
1.绝对值和符号函数
格式:ABS(<数值表达式>)
SIGN(<数值表达式>)
例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0
2.求平方根表达式
格式:SQRT(<数值表达式>)
例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数
格式:PI()
4.求整数函数
格式:INT(<数值表达式>)返回数值表达式的整数部分
CEILING(<数值表达式>)返回大于或等于表达式的最小整数
FLOOR(<数值表达式>)返回小于或等于表达式的最大整数
例如:
INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5
FLOOR(9.9)=9
5.四舍五入函数
格式:ROUND(<数值表达式1>,<数值表达式2>)
功能:返回制定表达式在制定位置四舍五入的结果
例如:
ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=350
6.求余函数
格式:MOD(<数值表达式1>,<数值表达式2>)
例如:
MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1
求余数的规律:1.首先按照两数的绝对值求余
2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值
3.余数取表达式1的正负号
4.若两数异好号,余数在加上表达式2的值为最终的结果
7. 求最大值和最小值函数
MAX(数值表达式列表)
MIN (数值表达式列表)
例如:MAX(2,3,5)=5 MAX(‘2’,’12’,’05’)=2 MAX(‘汽车’,’飞机’,’轮船’)
字符串比较的规律:
字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。如果相等在进行第二个字母的比较,以次类推。
###############################################
字符函数
1.求字符串长度函数
格式:LEN(<字符表达式>)
功能:返回制定字符表达式的长度,即所包含的字符个数。函数值为数值型
例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20
2.大小写转换函数
格式:LOWER(<字符表达式>)
UPPER(<字符表达式>)
功能:LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变
UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。
例如:LOWER(‘X1y2A’)=x1y2a UPPER(‘n=1’)=N=1
3.空格字符串生成函数
格式:SPACE(<字符表达式>)
功能:返回指定数目的空格组成的字符串。
4.删除前后空格函数
格式:TRIM(<字符表达式>)
LTRIM(<字符表达式>)
ALLTRIM(<字符表达式>)
功能:TRIM():返回指定字符表达式值去掉尾部空格后形成的字符串
LTRIM():返回指定字符表达式值去掉前导空格后形成的字符串
ALLTRIM():返回指定字符表达式值去掉前导空格和尾部空格后形成的字符串。
例如: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
.
###############################################
日期和时间函数
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
VAL(X+Y)=123.45,VAL(X+Z)=123.00,VAL(Z+Y)=0.00
3.字符串转换成日期或日期时间
格式:CTOD(<字符表达式>)转化成日期型数据
CTOT(<字符表达式>)转化成日期时间型数据
4.日期或日期时间转化成字符串
格式:DTOC(<日期表达式>|<日期时间表达式>[,1])
TTOC(<日期时间表达式> [,1])
功能TOC()将日期型数据或日期时间数据的日期部分转化成字符串
TTOC()将日期时间数据转化成字符串
声明:对DTOC()来说,如果选项是1,则字符串的格式总是YYYYMMDD,8个字符。 对TTOC()来说,如果使用选项1,则字符串格式总是YYYYMMDDHHMMSS,14个字符
例如:
STORE DATETIME() TO T
DTOC(T)=11/11/2005, DTOC(T,1)=20051111,
TTOC(T)=11/11/2005 18:54:34 PM TTOC (T,1)=20051111185434
5宏替换函数
格式 :&<字符变量>[.]
功能:替换出字符变量的内容,即去掉定界符。
例如:kk=“456”, ?&kk*100=45600
###############################################
测试函数
1.值域测试函数
格式:BETWEEN(<表达式T>,<表达式L>,<表达式H>)
例如:STORE NULL TO X;STORE 100 TO Y
BETWEEN(150,Y,Y+100)=.T.
BETWEEN(90,X,Y)=NULL
2.空值(NULL值)测试函数
格式:ISNULL(<表达式>)
例如:STORE .NULL. TO X
ISNULL(X)=.T.
3“空”值测试函数
格式:EMPTY(<表达式>)
P76详细讲解
4.数据类型测试函数
格式:VARTYPE (<表达式>[,<逻辑表达式>])
功能:测试表达式的类型,返回一个大写字母,函数值为字符型
2.空值(NULL值)测试函数
格式:ISNULL(<表达式>)
3.表文件尾测试函数
格式:EOF([<工作区号>|<表别名>])
4.表文件头测试函数
格式:BOF([<工作区号>|<表别名>])
5.记录号测试函数
格式:RECNO([<工作区号>|<表别名>])
6记录个数测试函数
RECCOUNT ([<工作区号>
6.条件测试函数
格式:IIF(<逻辑表达式>,<表达式1>,<表达式2>)
功能:测试<逻辑表达式>的值,表达式逻辑若为真,函数返回<表达式1>
的值,若为逻辑假,函数返回<表达式2>的值,<表达式1>和<表达式2>表达式类型不要求相同。
例如:X=100;Y=300
IIF(X>100,X-50,X+50)=150;IIF(Y>100,Y-50,Y+50)=250
7.记录删除测试函数
格式:DELETED([<工作区号>|<表别名>])
=================
假设(if...endif)
循环(do while...enddo)
分支(do case...endcase)
赋值(store...to)
调用表单(do form)
调用子程序(do)
返回调用程序(return)
启动事件处理(read events)
清除事件处理(clear events)
开关命令执行状态(set talk on/off)
结束程序(cancel)
函数
数值转换字符(str())
字符转换数值(val())
取系统日期(date())
取年份(year())
取月份(month())
取天日(day())
取整(int())
四舍五入(round())
删除标记(delete())
记录号(recno())
记录数(reccount())
找到记录(found())
表结尾(eof())
表开头(bof())
消除后续空格(trim())
消除前导空格(ltrim())