7.函数
VisualFoxPro系统中,函数是一段程序代码,用来进行一些特定的运算或操作,支持和完善命令的功能,帮助用户完成各种操作与管理。
VisualFoxPro系统有数百种不同函数。按函数提供方式,可分为系统函数和用户自定义函数;按函数运算、处理对象和结果的数据类型,可分为数值型函数、字符型函数、逻辑型函数、日期时间型函数、数据转换函数等,按函数的功能和特点,可分为数据处理函数、数据库操作函数、文件管理函数、键盘和鼠标处理函数、输出函数、窗口界面操作函数、程序设计函数、数据库环境函数、网络操作函数、系统信息函数和动态数据操作函数等。
VisualFoxPro的函数由函数名与自变量两部分组成。标准函数是VisualFoxPro系统提供的系统函数,其函数名是VisualFoxPro保留字,自定义函数是用户自已定义的函数,函数名用户指定;自变量必须用圆括号对括起来,如有多个自变量,各自变量以逗号分隔;有些函数可省略自变量,或不需自变量,但也必须保留括号;自变量数据类型由函数的定义确定,数据形式可以是常量、变量、函数或表达式等。函数是一类数据项,除个别(如宏替换)函数外,函数都不能像命令一样单独使用,只能作为命令的一部分进行操作运算。
(1).数值函数
数值函数用于数值运算,其自变量与函数都是数值型数据。
1).取绝对值函数ABS()
【格式】ABS(<数值表达式>)
【功能】计算数值表达式的值,并返回该值的绝对值。
【例】?ABS(-43.29)43.292).指数函数EXP()
【格式】EXP(<数值表达式>)
【功能】求以e为底、数值表达式值为指数的幂,即返回该数的指数值。
3).取整函数INT()
【格式】INT(<数值表达式>)
【功能】计算数值表达式的值,返回该值的整数部分。
【例】?INT(-76.93)-764).自然对数函数LOG()
【格式】LOG(<数值表达式>)
【功能】求数值表达式的自然对数。数值表达式的值必须为正数。
5).平方根函数SQRT()
【格式】SQRT(<数值表达式>)
【功能】求非负数值表达式的平方根。
【例】?SQRT(5*5)
5.00
6).最大值函数MAX()和最小值函数MIN()
【格式】
MAX(<数值表达式1>,<数值表达式2>[,<数值表达式3>...])
MIN(<数值表达式1>,<数值表达式2>[,<数值表达式3>...])
【功能】返回数值表达式中的最大值MAX()和最小值MIN()。
7).求余数函数MOD()
【格式】MOD(<被除数>,<除数>)
【功能】返回<被除数>除以<除数>得到的余数值。
【说明】在求摸运算中应注意以下几点:
(1)除数不能为0。
(2)除数为正数,返回正数;如果为负数,返回负数。
(3)如果被除数与除数能够整除,结果为0。
(4)如果被除数与除数不能整除,且被除数与除数同号,则结果为被除数除以除数而得到的余数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2。
(5)如果被除数与除数不能整除,且被除数与除数异号,则结果为被除数除以除数而得到的余数再加上除数。来源:
考试大 即:MOD(X1,X2)=X1-INT(X1/X2)*X2+X2。
【例】?MOD(10,3)&&结果为:1
?MOD(-10,-3)&&结果为:-1
?MOD(-10,3)&&结果为:2
?MOD(10,-3)&&结果为:-2
8).四舍五入函数ROUND()
【格式】ROUND(<数值表达式1>,<数值表达式2>)
【功能】返回数值表达式1四舍五入的值,数值表达式2表示保留的小数位数。
【ày】?R0UND(3.14159£?4),ROUND(1234.9962,0),ROUND(1234.567,-1)
3.141612351230
9).π函数PI()
【格式】PI()
【功能】返回常量π的近似值。
10)。随机函数RAND()
【格式】RAND(<数值表达式>)
【功能】产生0-1之间的随机数。
(2).字符函数
字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以cExp表示。
1).子串位置函数
【格式】AT(
,<cExp2>)
【功能】返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。
【例】X=”VisualFoxPro8.0”
?AT(”Fox”£?X)&&显示结果为8
?AT(”fox”£?X)&&显示结果为0
?AT(”o”£?X)&&显示结果为9
?AT(”o”£?X£?2)&&显示结果为13
2).取左子串函数LEFT()
【格式】LEFT(,)
【功能】返回从cExp串中第一个字符开始,截取nExp个字符的子串。
3).取右子串函数RIGHT()
【格式】RIGHT(,<nExp>)
【功能】返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。
4).取子串函数SUBSTR()
【格式】SUBSTR(,[,])
【功能】返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。
【例】CN=”ABCDEFG”?SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,6,3)DEABCDFG
若省略〈长度〉,或者〈长度〉超过从〈起始位置〉到末尾的长度,则截取的子字符串为从〈起始位置〉到〈字符串表达式〉末尾的所有字符。www.Examda.CoM考试就到考试大
例如:?SUBSTR(”计算机程序设计教程”,11)设计教程
5).字符串长度函数LEN()
【格式】LEN()
【功能】返回cExp串的字符数(长度)。函数值为N型。
【例】?LEN(”VisualFoxPro8.0”)16
6).删除字符串前导空格函数LTRIM()
【格式】LTRIM()
【功能】删除cExp串的前导空格字符。
7).删除字符串尾部空格函数RTRIM()|TRIM()
【格式】RTRIM|TRIM()
【功能】删除cExp串尾部空格字符。
8).空格函数SPACE()
【格式】SPACE()
【功能】返回一个包含nExp个空格的字符串。
【例】X=SPACE(2)+”学生情况”+SPACE(4)?
LEN(X),LEN(TRIM(X)),LEN(LTRIM))1410129).字符串替换函数STUFF()
【格式】STUFF(,,,)
【功能】从nExp1指定位置开始,用cExp2串替换cExp1串中nExp2个字符。
【ày】X1="ABCDEFG"
X2="abcd"
?STUFF(X1,4,3,X2),STUFF(X1,1,4,X2)
ABCabcdGabcdEFG
10).大小写转换函数LOWER()和UPPER()
【格式】LOWER()
UPPER()
【功能】LOWER()将cExp串中字母全部变成小写字母,UPPER()将cExp串中字母全部变成大写字母,其它字符不变。
11).字符匹配函数LINK()
【格式】LIKE(,)
【功能】比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)
【说明】中可以使用通配符*和?。*可以与任何数目的字符相匹配,?可以与任何单个字符相匹配。
【例】X=“abc”
Y=“abcd”
?LIKE(X,Y),LIKE(“ab*”,X),LIKE(“a*”,Y),LIKE(“?b”,X)
.F..T..T..F.