摘要:掌握VFP常用函数使用技巧对学生非常重要,在二级考试中,函数使用频繁,贯穿整个考试,不论是表创建的索引建立、还是查询的字段构造以及表单控件的函数表示,都离不开函数的使用。为了让学生理清这部分思路,该文从常用函数几个类型着手,分别从格式、功能和举例方面详细阐述,从而帮助学生学习巩固,从而提高VFP应用水平。
关键词:VFP; 函数;技巧
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)06-0189-02
函数是一段程序代码,用来进行一些特定的数据运算或转换功能。按函数运算的规则不同及函数处理对象和结果的数据类型差异,可将函数分为以下几类:
分别是处理数字型数据的数值型函数、处理字符型数据的字符型函数、处理日期型数据的日期型函数和处理需要转换统一类型的数据类型转换函数等。
函数由函数名与自变量两部分组成。使用函数的一般格式:函数名(自变量)。函数名是Visual FoxPro保留字,应蓝色显示。自变量以圆括号形式表示,多个自变量以逗号隔开。自变量形式多样,可以是常量、变量、函数或表达式等。
计算机二级VFP常用重点函数如下表所示:
因此,学习每一个函数要注意以下几点:函数的格式;函数的功能;自变量的个数以及类型;函数的返回值(类型)。
下面,我们分别详细介绍计算机二级VFP各类函数的格式、功能、应用举例及使用注意事项。
1 数值函数
数值函数主要讨论INT()、ROUND()和MOD()函数。这几个函数参数单一,主要用于数值运算。需要注意的是,在计算过程中,数值函数的自变量类型及函数的返回值类型都是数值型。可用TYPE()函数检验其函数返回值类型。下午详细介绍数值函数。
1.1取整函数INT( )
函数格式:INT()
函数功能:计算并返回expN的整数部分。需要注意的是,函数取整舍去小数部分时,不涉及四舍五入,区别于round函数用法。
应用举例:
?INT(-11.3),结果显示:-11(小数部分直接舍弃)
?INT(12.89)=12,结果显示:12(0.89全部舍弃,并无进位)
1.2 四舍五入函数ROUND( )
函数格式:ROUND(,< expN2>)
函数功能:返回expN1按expN2所指定的位数保留小数进行四舍五入的值,若expN2为负值,返回小数点左边|expN2|个0的整数值。
应用举例:
?ROUND(23.456,2),结果显示:23.47(保留两位小数,四舍五入原则)
?ROUND(-34.234,0),结果显示:-34(第二参数为0,表明不要小数)
?ROUND(2235.1863,-1),结果显示:2240(第二个参数-1,表明需要1个0的取整,且小数部分全部舍弃)
1.3 求余数函数MOD( )
函数格式:MOD(,),expN、expN2分别为参数一和参数二。以下都可以同样简称。
函数功能:返回“参数一”除以“参数二”的余数。返回值的正负取决于expN2的正负。返回值取值需要注意的是:若两个参数符号相同,值为正常余数。若两个参数符号不同,值为除数绝对值与正常余数的差。
应用举例:
?mod(17,5),显示结果:2(两个参数同为正数,按正常情况取余数)
?mod(43,-7),显示结果:-6(两个参数异号,符号位取决于第二参数,为负,值为|-7|-1=6,所以结果为-6)
2 字符函数主要处理字符型数据,参数使用中至少有一个是字符型数据
字符型函数主要讨论ALLTRIM()、AT()和SUBSTR()函数,这几个函数在查询中使用频繁,需要熟悉掌握其使用技巧。下午详细介绍字符函数。
2.1 删除前后空格函数ALLTRIM( )
函蹈袷剑ALLTRIM()
函数功能:返回删除expN前后空格的值。
应用举例:
?ALLTRIM(” study hard ”),结果显示:study hard
2.2 子串位置函数AT( )
函数格式:AT(,< exp N2>[,])
函数功能:返回expN1第expN3次出现在exp N2中的整数位置。expN3的默认值为1。若expN1未在exp N2中出现,则返回值为0。
应用举例:
?AT(“s”,“study”),结果显示:1(第三个参数没有,默认为1,s在study第一次出现的位置为1)
?AT(“人民”,“中华人民共和国”),结果显示:5(参数可以为中文,明确一个中文汉字占两个字节,所以位置为5
2.3 取子串函数SUBSTR( )
函数格式:SUBSTR (, [,< expN3>] )
函数功能:返回从串“参数一”中第“参数二”个字符开始,截取“参数三”个字符的子串。 如果“参数三”省去,则取子串从“参数二”开始,取到字符结束处的全部长度。
应用举例:
?SUBSTR(“foxpro for windows”,8,7),结果显示:for win(从字符的第8个位置开始,取7个长度)
?SUBSTR(“中华人民共和国”,5,4),结果显示:人民(汉字注意占两个字节宽度)
3 日期时间函数
日期时间函数是涉及日期、年份、月份、日的相关函数。主要讨论DATE()、YEAR()、 MONTH()和DAY()函数。这些函数使用时注意格式设置,如果按正常年月日排列,应当使用(,1)格式。
3.1 系统日期函数DATE()
函数格式:DATE([nyear,nmonth,nday])
函数功能:不带任何参数的DATE()返回系统当前日期,函数值为日期型D。
应用举例:
?DATE(),结果显示:18/03/16
?DTOC(DATE(),1),结果显示:20160318
3.2 年份函数YEAR()
函数格式:YEAR()
函数功能:函数返回指定日期的年份。函数值为数值型N。
应用举例:
?YEAR({^2016/03/18}),结果显示:2016
3.3 月份函数MONTH( )
函数格式:MONTH()
函数功能:MONTH( )函数返回指定日期的月份。函数值为数值型N。
应用举例:
?MONTH({^2016/03/18}),结果显示:3
3.4 日期函数DAY( )
函数格式:DAY()
函数功能:返回指定日期的天数。函数值为数值型N。
应用举例:
?DAY({^2016/03/18}) ,结果显示:18
4 转换函数
在VFP的索引建立和查询过程中,为了满足实际使用的需要,经常要到转换函数DTOC()和STR()函数。下面详细介绍这几个转换函数。
4.1 数值――字符型转换函数STR( )
函数格式:STR([,][,< expN3>])
函数功能:将expN1的数值转换成字符串形式。expN2为指定宽度,expN3为指定小数位数。函数返回值默认长度为10。函数值为字符型C。
应用举例:
?STR(234.61,5,1),结果显示:234.6(字符宽度为5,小数位数为1,含小数点算一位)
4.2字符――数值型转换函数VAL( )
函数格式:VAL ()
函数功能:将参数中字符串数字转换成对应数值,转换结果取两位小数函数返回值为数值型N。
应用举例:
?VAL(“12”),结果显示:12.00
?VAL(“12abc”),结果显示:12.00(转换过程中,遇到非数值型字符为止)
4.3日期――字符型D换函数DTOC( )
函数格式:DTOC([, 1])
函数功能:把日期参数转换成相应的字符串。函数返回值为字符型C。
应用举例:
?DTOC(DATE(),1),结果显示:20160318(此时该结果为字符串)
4.4 字符――日期型转换函数CTOD( )
函数格式:CTOD()
函数功能:把字符串转换成对应日期值。函数值为日期型D。
应用举例:
?CTOD(“^2016/03/18”),结果显示:03/18/16(注意格式)
总之,函数使用贯穿整个VFP上机及理论部分,特别是转换函数部分DTOC()函数及STR()函数使用频繁,学生应根据实际情况,加强练习,不断巩固熟练,才能灵活掌握函数的使用,为等级考试奠定基础。
参考文献:
[1] 江苏省教育厅.Visual Foxpro数据库教程[M].北京:高等教育出版社,2014.