3 . 3Visual FoxPro的函数

2020-03-05

3.3Visual FoxPro的函数Visual FoxPro的函数

一、认识

·可以通过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’。


分享