一、认识
·可以通过VFP提供的函数对数据进行运算。
·通过函数对数据进行运算时,参加运算的叫自变量或参数,运算结果就是函数值。
·函数的一般使用格式:函数名(自变量,自变量,……)
注意:VFP中,当一个函数不需要自变量时,圆括号也要写上,如DATE()等。
二、常用数值函数
1、ABS函数
功能:求一个数的绝对值。
例1:ABS(67)
例2:ABS(-67+89)
例3:ABS(-82)
思考:如何验证函数值?
2、SIGN函数
功能:当自变量值正时,返回1;当自变量值负时,返回-1;当自变量值为0时,返回0。
例:SIGN(56-73)
思考:试用SIGN函数写出为变量B赋值的赋值命令,要求:当变量A的值为正时,B赋以值8+20;当变量A的值为负时,B赋以值8-20;当变量A的值为0时,B赋以值8。
3、SQRT函数
功能:求正数的平方根。
例:SQRT(2)
说明:默认计算结果为2位小数。SET DECIMALS TO命令可设置运算结果的小数位数。
4、PI函数
功能:函数值为圆周率的值。
例:PI()
5、INT函数
功能:返回自变量的整数部分。
例1:INT(1.3)
例2:INT(1.6)
例3:INT(-1.3)
例4:INT(-1.6)
6、CEILING函数
功能:返回大于或等于自变量的最小整数。俗称天花板函数。
例1:CEILING(1.3)
例2:CEILING(2)
例3:CEILING(-1.3)
例4:CEILING(-2)
7、FLOOR函数
功能:返回小于或等于自变量的最大整数。俗称地板函数。
例1:FLOOR(1.3)
例2:FLOOR(2)
例3:FLOOR(-1.3)
例4:FLOOR(-2)
8、ROUND函数
功能:对自变量的值进行四舍五入运算。运算时,第二个自变量表示精确到哪一位。
例1:ROUND(345.345,2)
例2:ROUND(345.345,1)
例3:ROUND(345.345,0)
例4:ROUND(345.345,-1)
9、MOD函数
功能:求两个整数相除以后的余数。
例1:MOD(10,3)
例2:MOD(9,3)
例3:MOD(11,3)
说明:有负数的求余不考虑。
10、MAX函数
功能:从多个自变量中挑出最大的值。
例:MAX(1,2,7,4,5)
说明:自变量也可以是非数值型的,但自变量的类型应一致。如:
MAX(“A”,”ABC”,”BC”)
11、MIN函数
功能:从多个自变量中挑出最小的值。
例:MIN(1,2,7,4,5)
说明:自变量也可以是非数值型的,但自变量的类型应一致。如:
MIN (“A”,”ABC”,”BC”)
三、常用字符处理函数
1、LEN函数
功能:求字符串的长度。
说明:一个汉字长度为2,一个英文字符(包括空格)长度为1。
例:LEN("VisualFoxPro教程")
2、LOWER函数
功能:将自变量中的所有字母转化为小写字母。
例:LOWER("VisualFoxPro教程")
3、UPPER函数
功能:将自变量中的所有字母转化为大写字母。
例:UPPER("VisualFoxPro教程")
4、TRIM或RTRIM函数
功能:将字符型自变量右边空格去掉。
例:TRIM(" Visual FoxPro ")
5、LTRIM函数
功能:将字符型自变量左边空格去掉。
例:LTRIM(" Visual FoxPro ")
6、ALLTRIM函数
功能:将字符型自变量左、右两边的空格均去掉。
例:ALLTRIM(" Visual FoxPro ")
7、LEFT函数
功能:从一个字符串左边开始取子串。
例1:LEFT("下午好!",2)
例2:LEFT("下午好!",4)
8、RIGHT函数
功能:从一个字符串右边取子串。
例1:RIGHT("下午好!",2)
例2:RIGHT("下午好!",4)
9、SUBSTR函数
功能:从一个字符串中取子串。
例1:SUBSTR("下午好!",3,4)
例2:SUBSTR("下午好!",3)
10、SPACE函数
功能:产生指定个数空格组成的字符串。
例:SPACE(10)
11、REPLICATE函数
功能:由指定字符串重复组合产生字符串。
例1:REPLICATE(‘*’,10)
例2:REPLICATE(‘ABCD’,5)
12、AT函数
功能:求第一个字符串在第二个字符串中出现的位置。
例1:AT("ab","huABygabhgtabagf")
例2:AT("ab"," huABygabhgtabagf ",2)
13、ATC函数
功能:求第一个字符串在第二个字符串中出现的位置,但不区分字母大小写。
例1:ATC("ab"," huABygabhgtabagf ")
例2:ATC("ab"," huABygabhgtabagf ",2)
14、OCCURS函数
功能:求第一个字符串在第二个字符串中出现的次数。
例1:OCCURS("a","abScaBdA")
例2:OCCURS("ab","abScaBdA")
例3:OCCURS("abc","abScaBdA")
15、STUFF函数
功能:字符串内容替换。
例:STUFF("gtyabku",3,4,"AA")
思考:
·在"ab"的a、b之间插入"和"。
·“淮北煤炭师范学院”已改名为“淮北师范大学”了,淮北师范大学的你,能通过STUFF函数,将“淮北煤炭师范学院”中的“煤炭”二字删除、“学院”二字改为“大学”,使得结果是“淮北师范大学”吗?
16、CHRTRAN函数
功能:字符串内容替换。
例1:CHRTRAN("aBCAAC","AC",”12”)
例2:CHRTRAN("aBCAAC","AC",”1”)
例3:CHRTRAN("aBCAAC","AC",”123”)
说明:该函数对汉字进行替换时,会出现异常。
例4:CHRTRAN("大家好!","大家","你")
例5:CHRTRAN("淮北煤炭师范学院","学院煤炭","大学")
17、LIKE函数
功能:如果两个字符串一样,则函数值为真值,否则是假值。
例1:LIKE("abc","ABC")
例2:LIKE("abc","ab")
例3:LIKE("abc","abc")
说明:前一个字符串中可以出现通配符?和*。?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。
例4:LIKE("ab*","ab")
例5:LIKE("ab","ab*")
四、常用日期、时间函数
1、DATE函数
功能:返回当前系统日期。
例:DATE()
2、TIME函数
功能:返回当前系统时间。
例:TIME()
说明:函数值为字符型。
3、DATETIME函数
功能:返回当前系统日期及时间。
例:DATETIME()
思考:函数值什么类型?
4、YEAR函数、MONTH函数、DAY函数
功能:分别返回日期或日期时间型自变量中的年份、月份和日子。
例:分别求出今天的年、月、日。
5、HOUR函数、MINUTE函数、SEC函数
功能:分别返回日期时间型自变量中的时、分、秒。
例:分别求出现在的时、分、秒。
五、常用转换函数
1、STR函数
功能:将数值型自变量转换为字符型。
例:STR(123.456)
说明:函数值默认10位,不带小数部分。可以加上第2、第3个参数,用来分别表示总位数和小数位数。默认或指定位数比实际位数多时,函数值的左边补以相应个数的空格,以保证总位数;默认或指定位数比实际位数少时,先减少小数位数,还不够时,只好返回默认或指定位数个*。
练习:验证以下函数值,看看和自己预想的是否一致。
STR(123.456,5)
STR(123.456,5,1)
STR(123.456,5,2)
STR(123.456,6,2)
STR(123.456,3,2)
STR(123.456,2)
2、VAL函数
功能:将字符型自变量转换为数值型。
例1:VAL("1234.56")
例2:VAL("123a")
例3:VAL("上午好!")
3、DTOC函数
功能:将日期型或日期时间型自变量转换为相应的日期字符串。
例:DTOC(DATE())
说明:转换后的字符串组成和当前日期格式有关,若加上1参数,将转化为YYYYMMDD这种固定格式的字符串,如:DTOC(DATE(),1)
4、TTOC函数
功能:将日期时间型自变量转换为相应的字符串。
例:TTOC(DATETIME())
说明:转换后的字符串组成和当前日期时间格式有关,若加上1参数,将转化为YYYYMMDDHHMMSS这种固定格式的字符串,如:TTOC(DATETIME(),1)
5、CTOD函数
功能:将日期形式的字符串转化为日期型。
说明:字符串的日期形式应和当前日期格式一致,否则将转化为空日期。
例:CTOD ("2010/5/1")
6、CTOT函数
功能:将日期时间形式的字符串转化为日期时间型。
说明:字符串的日期时间形式应和当前日期时间格式一致,否则将转化为空日期时间。
例:CTOT ("2010/5/1 10:8:30")
7、ASC函数
功能:求字符型自变量中第一个字符的ASCII码。
例:ASC('A')
8、CHR函数
功能:根据ASCII码求对应的字符。
例:CHR(65)
六、常用测试函数
1、EMPTY函数
功能:判断一个数据是否空值,是为真,否则为假。
例:EMPTY(0),EMPTY ("0"),EMPTY(""),EMPTY (" "),EMPTY ({})
2、VARTYPE函数
功能:判断自变量的数据类型,返回相应的字母。
例:VARTYPE(23),VARTYPE('23')
3、BETWEEN函数
功能:判断第一个自变量的值是否在后两个自变量之间,是,函数值为真值;不是,函数值为假值。
例:BETWEEN(3,1,6),BETWEEN(3,6,1),BETWEEN(3,3,6),BETWEEN(3,4,6),BETWEEN(“e”,”a”,”x”)
七、其它常用函数
1、条件函数
用法:IIF(逻辑型表达式,表达式1,表达式2)
功能:如果逻辑型表达式的值为真,则表达式1的值作为函数值,否则,表达式2的值作为函数值。
例:函数IIF(X>10,’AAA’,’BBB’)
思考:当变量X分别取值10、0、100时,函数IIF(X>10,’AAA’,IIF(X<10,’BBB’,’CCC’))的值。
2、宏替换函数
用法:&字符型变量.
功能:用字符型变量的值(不带定界符)替换整个宏替换函数。
例:假设A=’76+28’,问A和&A.分别等价于什么?
说明:
1)该函数是一个十分有用又十分特殊的函数。
2)宏替换函数出现在字符串中时也还有效,而其它函数出现在字符串中时被当作一个个字符处理。如:
若A='ABC',则'X&A.Y'等价于'XABCY';而'XABS(-86)Y'却不等价于'X86Y'。
3)宏替换函数最后的小数点是宏替换函数的结束标记。当宏替换函数和其后的内容能够明确区分清楚时,该结束标记可以省略。
思考:下面的表达式中,哪些宏替换函数的结束标记可以省略?
&A.+52,&A.6-285,’&A.BCDEFG’。