函数.docx
《函数.docx》由会员分享,可在线阅读,更多相关《函数.docx(14页珍藏版)》请在冰豆网上搜索。
![函数.docx](https://file1.bdocx.com/fileroot1/2023-1/22/de844bf6-b58f-4909-9336-94beebafe57a/de844bf6-b58f-4909-9336-94beebafe57a1.gif)
函数
函数:
一、数值和数学函数
1、一般数值函数
(1)取整函数
格式:
INT(<数值表达式>)
功能:
该函数返回<数值表达式>的整数部分
(2)向上取整函数
格式:
CEILING(<数值表达式>)
功能:
该函数返回不小于<数值表达式>的最小整数
(3)向下取整函数
格式:
FLOOR(<数值表达式>)
功能:
该函数返回不大于<数值表达式>的最大整数
(4)四舍五入函数
格式:
ROUND(<数值表达式1>,<数值表达式2>)
功能:
该函数根据要求保留小数位。
具体操作是:
根据<数值表达式2>指定的位数,对<数值表达式1>进行四舍五入操作,最后保留相应的小数位数。
若<数值表达式2>指定的位数为负数,则表示整数部分舍至第几位,得到的值将尾随<数值表达式2>个零。
(5)取模函数
格式:
MOD(<数值表达式1>,<数值表达式2>)
功能:
该函数返回<数值表达式1>除以<数值表达式2>的余数,如<数值表达式2>为正,则函数值为正,否则为负。
表达式自动取整再进行取模运算。
(6)最大/最小值函数
格式:
MAX/MIN(<表达式1>,<表达式2>[<表达式3>...])
功能:
该函数返回若干个表达式中的最大或最小数。
(7)绝对值函数
格式:
ABS(<数值表达式>)
功能:
该函数返回<数值表达式>的绝对值
(8)平方根函数
格式:
SQRT(<数值表达式>)
功能:
该函数返回<数值表达式>的算术平方根
(9)指数函数
格式:
EXP(<数值表达式>)
功能:
该函数返回以E为底的指数值,<数值表达式>为e的指数部分。
(10)符号函数
格式:
SIGN(<数值表达式>)
功能:
该函数根据<数值表达式>的值为正、零、负数分别返回1、0、-1。
(11)随机函数
格式:
RAND(<数值表达式>)
功能:
该函数返回一个0——1.0之间的随机数。
<数值表达式>是随机种子,如果<数值表达式>是
一个负数,由系统时钟产生“种子”,为了获得真正的随机序列,可以在第一个RAND中使
用负参数,那个数代替缺省的种子,而以后的RAND()不用任何参数。
如果<数值表达式>
是一个正数,那个数代替缺省的种子;如果<数值表达式>是相同的正数,则总是产生相同
的随机序列。
2、金融函数
(1)求投资未来值函数
格式:
fv(<数值表达式1>,<数值表达式2>,<数值表达式3>)
功能:
该函数返回<数值表达式1>为每期投资额,<数值表达式2>为期利率,<数值表达式3>为期数的未来值。
(2)求投资现值函数
格式:
PV(<数值表达式1>,<数值表达式2>,<数值表达式3>)
功能:
该函数返回<数值表达式1>为每期投资额,<数值表达式2>为期利率,<数值表达式3>为期数本利和现值值。
(3)求每期应存款函数
格式:
PAYMENT(<数值表达式1>,<数值表达式2>,<数值表达式3>)
功能:
该函数计算以<数值表达式1>为贷款额,<数值表达式2>为期利率,分<数值表达式3>期归还全部本和利,每期应付的款项。
3、确定函数
(1)之间函数
格式:
BETWEEN(<表达式1>,<表达式2>,<表达式3>)
功能:
当<表达式1>大于或等于<表达式2>而又小于或等于<表达式3>时,函数返回.t.,否
则返回.f.。
(2)之内函数
格式:
INLIST(<表达式1>,<表达式2>,[<表达式3>...])
功能:
当<表达式1>的值等于<表达式2>、<表达式3>,...之一时,函数返回.t.,否则返回.f.。
(3)空函数
格式:
EMPTY(<表达式>)
功能:
当<表达式>为空时,函数返回返回.t.,否则返回.f.
4、三角函数
(1)正弦函数
格式:
SIN(<数值表达式>)
功能:
该函数返回<数值表达式>所表示弧度的正弦值。
(2)PI值函数
格式:
PI()
功能:
该函数返回PI的值
(3)角度转换为弧度函数
格式:
DTOR(<数值表达式>)
功能:
该函数将<数值表达式>由角度转变为弧度
二、字符函数
1、宏代换函数
格式:
&<字符型内存变量>[.<字符表达式>]
功能:
用字符内存变量的值代替内存变量的名,宏代换的作用范围是从符号“&”起,直到遇到一个圆点符“.”或空白为止。
2、字符串截取函数
(1)取消前后空格函数
格式:
ALLTRIM(<字符表达式>)
功能:
返回去掉<字符表达式>首尾空格后的字符串。
(2)删除字符串前导空格函数
格式:
LTRIM(<字符表达式>)
功能:
该函数用于截去<字符表达式>中左边的空格
(3)删除字符串尾部空格函数
格式:
TRIM(<字符表达式>)
功能:
该函数用于截去<字符表达式>尾部的空格
(4)取左子串函数
格式:
LEFT(<字符表达式>,<数值表达式>)
功能:
该函数截取<字符表达式>最左边的<数值表达式>个字符为一个子字符串。
(5)取右子串函数
格式:
right(<字符表达式>,<数值表达式>)
功能:
该函数截取<字符表达式>最右边的<数值表达式>个字符为一个子字符串。
(6)取子串函数
格式:
SUBSTR(<字符表达式>,<数值表达式1>[,<数值表达式2>])
功能:
这里<数值表达式1>指定取子串的起始位置,<数值表达式2>指定取字符的个数。
若缺省<数值表达式2>或其值大于<字符表达式>长度时,则将截取<数值表达式1>指
定位置起至最后一个字符为止的子串。
当<数值表达式1>的值为0时,输出空串。
3、字符查找函数和替换函数
(1)子串检索函数
格式:
AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])
功能:
该函数返回<字符表达式1>在<字符表达式2>中第<数值表达式>次出现的位置。
若<字符表达式1>不在<字符表达式2>中则返回0,若不给出<数值表达式>则隐含为1。
输出值的类型为数值型。
(2)字符串匹配函数
格式:
LIKE(<字符表达式1>,<字符表达式2>)
功能:
若<字符表达式1>与<字符表达式2>匹配,则该函数返回.T.否则返回.f.,<字符表达式1>
中允许使用通配符*和?
输出值的类型为逻辑型。
(3)表达式计算函数
格式:
EVALUATE(<字符表达式>)
功能:
该函数返回<字符表达式>的值。
<字符表达式>是要计算的表达式,可以是一个字符串、一个合法的表达式、内存变量、数组元素或任何数据类型的字段。
AA=”VVV”?
EVALUATE(”AA”)
(4)名函数
格式:
(<字符表达式>)
功能:
名表达式也具有与上述&和EVALUATE()函数类似的功能
AA=”VVV”?
(AA)括号内的变量不能加引号.
(四)、其他函数
(1)数据类型测试函数
格式:
TYPE(<字符表达式>)
功能:
该函数返回<字符表达式>的数据类型,要求操作数必须是字符型的,即必须将参数用定界符括起来。
TYPE()函数的参数可以是表达式,TYPE()函数先计算表达式的值,最后返回一个指示该表达式类型的单个大写字母。
输出值的类型为字符型。
(2)字符串长度函数
格式:
LEN(<字符表达式>)
功能:
该函数返回<字符表达式>的长度,输出值的类型为数值型。
(3)SPACE(<数值表达式>)
功能:
该函数输出一个<数值表达式>的值为空格数的若干空格,输出值为字符型.
(4)REPLICATE(<字符表达式>,<数值表达式>)
功能:
该函数将<字符表达式>重复<数值表达式>次,输出值为字符型.
三、日期时间函数
(1)系统时间函数
格式:
TIME([<数值表达式>])
功能:
该函数以24小时,八个字符串格式(HH:
MM:
SS)时、分、秒返回当前系统时间。
如果包含有<数值表达式>,则返回的时间包含百分之几秒。
输出值的类型为字符型。
(2)日期函数
格式:
DATE()
功能:
该函数返回当前系统日期。
DATA()返回的字符串格式可用SETCENTURY、SETDATE、SETMARKTO改变,也与Windows的控制面板上国际选项有关。
输出值的类型为日期型。
(3)日期时间函数
格式:
DATETIME()
功能:
该函数返回当前系统日期时间。
其返回的格式设置同DATE()。
输出值的类型为日期时间型。
(4)求年份函数
格式:
YEAR(<日期表达式/日期时间表达式>)
功能:
该函数返回<日期表达式>或<日期时间表达式>的年份的数值。
输出值的类型为数值型。
(5)求月份函数
格式:
MONTH(<日期表达式/日期时间表达式>)/CMONTH(<日期表达式/日期时间表达式>)
功能:
MONTH函数返回<日期表达式>或<日期时间表达式>的月份的数值。
输出值的类型为数值型。
CMONTH函数返回<日期表达式>或<日期时间表达式>的月份的名称。
输出值的类型为字符型
(6)求星期几函数
格式:
DOW(<日期表达式/日期时间表达式>)/CDOW(<日期表达式/日期时间表达式>)
功能:
DOW()函数返回<日期表达式>或<日期时间表达式>的星期几的数值,星期日为一个星期的第一天。
输出值的类型为数值型。
CMONTH函数返回<日期表达式>或<日期时间表达式>的星期几的名称。
输出值的类型为字符型。
(7)求日期函数
格式:
day(<日期表达式/日期时间表达式>)
功能:
该函数返回<日期表达式>或<日期时间表达式>的日期的数值。
输出值的类型为数值型。
(8)求时、分、秒函数
格式:
HOUR(<日期表达式/日期时间表达式>)/MINUTE(<日期表达式/日期时间表达式>)/SEC(<日期表达式/日期时间表达式>)
功能:
这三个函数分别返回<日期表达式>或<日期时间表达式>的时分秒值。
输出值的类型为数值型。
四、转换函数
(1)字母小写转大写函数
格式:
UPPER(<字符表达式>)
功能:
该函数将<字符表达式>中的所有小写字母转换成大写字母。
输出值的类型为字符型。
(2)字母大写转小写函数
格式:
LOWER(<字符表达式>)
功能:
该函数将<字符表达式>中的所有大写字母转换成写字母。
输出值的类型为字符型。
(3)字符型转日期型函数
格式:
CTOD(<字符表达式>)CTOD("01/02/03")-DATE()
功能:
该函数将字符型日期转换成日期型日期。
<字符表达式>的缺省格式有效输入范围为“1/1/100”--“12/31/9999”。
输出值的类型为日期型。
(4)日期型转字符型函数DATE()+"是我的生日"
格式:
DTOC(<日期表达式>[,1])
功能:
该函数将日期型日期转换成字符型日期。
加选择参数1,则输出格式转换为年、月、日,年份为4位。
输出值的类型为字符型。
(5)字符转换ASCII码
格式:
ASC(<字符表达式>)asc("A")65
功能:
该函数返回<字符表达式>中首字符的ASSCII码的十进制数。
输出值的类型为数值型。
(6)ASCII码转换字符
格式:
CHR(<数值表达式>)CHR(65)=A
功能:
该函数把<数值表达式>的值转换为ACSII码字符。
输出值的类型为字符型。
(7)数值型转字符型函数STR(工资,6,2)
格式:
STR(<数值表达式1>[,<数值表达式2>[,<数值表达式3>]])
功能:
该函数把<数值表达式1>的值转换为字符型数据,<数值表达式2>是转换的长度,
<数值表达式3>指定小数位数。
缺省<数值表达式2>转换整个长度,缺省<数值表达式3>不转换小数位。
输出值的类型为字符型。
(8)字符型转数值型函数
格式:
VAL(<字符表达式>)val("12")+asc("a")
功能:
该函数将字符型数据转换为数值数据。
字符串中可转换部分从第一个数字字符开始到非数值字符为止的数字串,可以包含负号。
函数值的小数位由SETDECIMALSTO命令决定,默认值为2。
输出值的类型为数值型。
五、数据库和表函数
(一)字段处理函数
(1)字段数函数
格式:
FCOUNT([<工作区号>/<别名>])
功能:
该函数返回指定工作区中打开表的字段数。
若指定工作区没有打开的表,则返回值0。
输出值的类型为数值型。
(2)字段名函数
格式:
FIELD(<数值表达式>[<工作区号>/别名>])
功能:
该函数返回指定工作区中第<数值表达式>个字段的名字。
输出值的类型为字符型。
(3)字段长度函数
格式:
Fsize(<字段名>[<工作区号>/别名>])
功能:
该函数返回指定工作区中指定字段的大小。
输出值的类型为数值型。
(4)求备注内容的行数函数
格式:
MEMLINES(<备注字段名>)
功能:
该函数返回当前记录指定的备注字段内容所占的行数。
输出值的类型为数值型。
(5)求备注某行内容函数
格式:
MLINE(<备注字段名>,<数值表达式1>[,<数值表达式2>])
功能:
该函数返回当前记录指定的备注字段名中的<数值表达式1>行且自<数值表达式2>开始的内容,备注文件内容每行从0开始编号。
输出值的类型为字符型。
(二)记录处理函数
(1)表起始测试函数
格式:
BOF(<工作区号>/<别名>)
功能:
该函数用来测试表文件开始状态,并返回一个逻辑值。
当把记录指针移到表文件的第一条逻辑记录位置之前时,该函数值为.T.,否则返回.f.。
输出值的类型为逻辑型。
(2)表结束测试函数
格式:
EOF(<工作区号>/<别名>)
功能:
该函数用来测试表文件结束状态,并返回一个逻辑值。
当把记录指针移到表文件的
最后一条逻辑记录位置之后时,该函数值为.T.,否则返回.f.。
输出值的类型为逻辑型。
(3)删除函数
格式:
DELETED(<工作区号>/<别名>)
功能:
若当前记录已作删除标记,该函数值为.T.,否则返回.f.。
输出值的类型为逻辑型。
(4)过滤表达式函数
格式:
FILTER(<工作区号>/<别名>)setfilterto性别="女"locatefor
功能:
该函数返回指定表文件中由SETFILTER指定的筛选表达式。
输出值的类型为字符型。
(5)记录数测试函数
格式:
RECCOUNT([<工作区号>/<别名>])
功能:
该函数返回指定工作区中表文件记录总数(包括已删除标记的记录)。
若指定工作区中没有打开的表文件,则函数值为0。
输出值的类型为数值型。
(6)记录长度测试函数
格式:
RECSIZE(<工作区号>/<别名>)
功能:
该函数返回指定工作区表文件记录长度。
若指定的工作区没有打开的表文件,则函数值为0。
输出值的类型为数值型。
(7)记录号测试函数
格式:
RECNO(<工作区号>/<别名>)found()
功能:
该函数返回指定工作区表文件中当前记录号。
若指定的工作区没有打开的表文件,则函数值为0。
若是一个空表,则RECNO()=1且EOF()=.T.;若记录指针移到表的最后一条记录后面,则得到比总记录数大1的值;若记录指针移到表的第一条记录前,则函数值与第一个记录的记录号相同。
输出值的类型为数值型。
(8)关联测试函数
格式:
RELATION(<关系编号>[<工作区号>/<别名>])
功能:
该函数用于取得表之间的关联表达式。
如果指定的工作区中没有打开表或没有建立关联,则返回空字符串。
输出值的类型为字符型。
六、测试函数
(1)大小写锁定键状态测试函数
格式:
CAPSLOCK([<逻辑表达式>])
功能:
若不选择<逻辑表达式>,该返回Capslock键的状态,若处于开(大写)状态,返回.T.,否则返回.F.。
若选择<逻辑表达式>,
且其值为.T.,则置Capslock键为开(大写)状态,这时Capslock只是灯亮;若选择<逻辑表达式>,且其值为.F.,则置Capslock
键为关(小写)状态,这时Capslock只是灯灭。
输出值的类型为逻辑型。
(2)输入键测试函数
格式:
INKEY([<数值表达式>][,<字符表达式>])
功能:
该函数在程序执行过程中,根据用户按键的ACSII值,返回一个在0-255之间的整数值。
若没有按下任何键,则函数值为0。
如果
键盘缓冲区中已有几个键值,则函数返回第一个进入键盘缓冲区的值。
其中,选择项<数值表达式>表示键盘输入的等待时间。
用户按下键后,则立即返回对应的ACSII代码值。
选择项缺省或<数值表达式>为0,则该函数将一直等待到有键按下为止。
输出值的类型为数值型。
(3)编辑退出按键测试函数
格式:
READKEY([<数值表达式>])
功能:
该函数的功能是返回退出全屏幕命令时所按键的代码。
返回值为一整数值,它记录了全屏幕命令退出时测试用户是否作了修改,
也记录了退出全屏幕编辑时最后使用的光标控制键。
如果在命令执行时没有改变数值,返回的数值在0-36之间;如果数据进行了
改变,返回的数值在256-292之间,即他们之间相差256。
换言之,在命令执行期间数据被修改过,则函数值将增加256。
输出值的类型为数值型。
(4)按键返回值函数
格式:
LASTKEY()
功能:
该函数返回最近一次按键的值。
对于同样的键,LASTKEY()与INKEY()返回相同的值。
输出值的类型为数值型。
(5)文件测试函数
格式:
FILE(<字符表达式>)
功能:
测试指定的文件是否存在,其中文件名必须包含扩展名。
该文件存在,则返回.T.,否则返回.F.。
输出值的类型为逻辑型。
(6)磁盘可用空间测试函数
格式:
DISKSPACE()
功能:
计算当前驱动器上磁盘可用字节数,主要用于判断是否有足够的空间来做备份工作。
其返回值为工作驱动器中磁盘的可用字节数。
输出值的类型为数值型。
(7)环境设置测试函数
格式:
SET(<字符表达式>[,1])
功能:
其中<字符表达式>是SET命令组中各条SET命令的命令关键字,因有些命令在SET命令关键字ON/OFF和SET命令关键字TO...两
个命令形式中有相同的命令关键字,为了区别这种情况,在需要返回SET命令关键字TO...设置时,在SET函数中加参数1。
SET()函数返回开关的状态(ON或OFF)和设置命令所设置的值。
七、数组函数
(1)数组复制函数
格式:
ACOPY(<源数组名>,<目标数组名>[,<数值表达式1>[,<数值表达式2>[,<数值表达式3>]]])
功能:
将源数组中的元素一对一地复制到目标数组中去,源数组中的元素将替换目标数组中的元素。
数组可以是一维或二维数组。
如目标数组不存在,VFP将自动创建目标数组。
大小与源数组相同。
<数值表达式1>指定源数组中第一个被复制元素的编号,复制从此元素开始(包含此元素)。
如复制时不使用元素编号<数值表达式1>,则从源数组的第一个元素开始复制。
<数值表达式2>指定复制的源数组的元素数目。
<数值表达式3>指定目标数组中第一个被替换的元素编号。
该函数返回复制到目标数组中的元素个数。
(2)表结构放入数组的函数
格式:
AFIELDS(<数组名>[,<工作区号>/<别名>])
功能:
将当前指定工作区中的表结构信息放入一个数组并返回表中的字段数。
如数组不存在或空间不够,VFP会自动建立和增加数组。
八、自定义对话框函数
格式:
MESSAGEBOX(<提示文本>[,<数值表达式>[,<标题文本>]])
功能:
显示一个用户自定义对话框。
输出值的类型为数值型。
参数:
<提示文本>:
指定在对话框中显示的文本。
如果要显示多行文字,可以在各行之间加CHR(13),对话框的高度和宽度根据<提示文本>适当增大,以包含全部信息。
<数值表达式>:
指定对话框中的按钮和图标、显示对话框时的默认按钮以及对话框的行为。
<标题文本>:
指定对话框标题栏中的文本。
MESSAGEBOX()
数值与按钮种类对照表
数值按钮种类
0"确定"
1"确定"、"取消"
2"放弃"、"重试"、"忽略"
3"是"、"否"、"取消"
4"是"、"否"
5"重试"、"忽略"
数值与图标种类对照表
值图标种类
16停止图标
32问号
48感叹号
64信息I图标
数值与默认按钮对照表
数值默认按钮
0第1个按钮
256第2个按钮
512第3个按钮
MESSAGEBOX()对应每一个按钮的返回值
返回值按钮
1"确定"6“是”
2"取消"7“否”
3"放弃"
4"重试"
5"忽略"
6
7