您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 第2章 VFP语言基础
1第2章VisualFoxPro语言基础2.1常量和变量2.2VisualFoxPro中的常用函数2.3运算符和表达式2.4VisualFoxPro命令格式及书写规则2本章要点学习目的与要求●理解数据类型、常量、变量的概念与表示方法。●熟练掌握各类型运算符及表达式的使用方法。●熟练掌握常用函数。2.1常量和变量在VisualFoxPro中,处理过程中其值不发生变化的量称为“常量”,分为“字符型”、“数值型”、“逻辑型”、“日期型”、“日期时间型”和“货币型”。2.1.1常量(1)数值型(N):数值型常量也就是数学上的常数,用来表示一个数量的大小。取值范围:-0.9999999999E+20~0.9999999999E+20如:6,8.45,6.5e3(E前要有数字,E后要有整数)5(2)字符型(C):字符型常量也称为“字符串”,通常用来表示文本类型的信息;由“中英文字符”、“数字”、“空格”和特殊符号组成。(3)日期型(D)日期型常量用来表示日期数据,界定符号为{};花括号内包含年、月、日,各部分用“/”或“-”分隔;严格格式(默认输入格式):严格日期格式为{^yyyy-mm-dd}。如:{^2009-10-23}。(4)日期时间型(T):日期时间常量表示日期时间数据,系统默认的日期时间型为“月/日/年时:分:秒”;日期时间型常量用{^yyyy-mm-ddhh:mm:ssa/p};如:{^2001-03-2211:30p}日期时间中间可以用空格隔开也可以用逗号隔开!(5)逻辑型常量(L)只有逻辑真和逻辑假两个值,长度为1,逻辑型常量用来表示逻辑值,用L(Logic)表示。在VisualFoxPro中,逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。8(6)货币型常量(Y)货币型常量用来表示货币的值,与数值型不同的是,需要加一个前置的货币符号($),如$23.3。货币型数据默认保留4位小数,超出部分将进行四舍五入,如将$3.1415926存储为$3.1416。变量是指在程序运行过程中其值可以变化的数据。确定一个变量,要需要确定其3个要素:变量名、数据类型和变量值。1.变量的命名规则不同的变量具有不同的变量名,变量的命名需要遵守以下规则。(1)由英文字母、汉字、下划线和数字组成。(2)不能以数字开头,如123ab不能作为变量名。(3)不能使用系统保留字(系统中的命令,如use)。(4)英文字母不区分大小写,即变量名ab、aB、AB在系统中被认作是同一变量。2.1.2变量102.变量的分类VisualFoxPro中的变量分为字段变量和内存变量。内存变量又分为简单内存变量、数组和系统变量,如图所示。1)字段变量字段变量就是数据表中的字段,变量名就是表中的字段名。内存变量是一种临时变量,是在程序或命令状态时用于存放临时数据的内存工作单元,内存变量的值就是存放在这个区域里的数据。内存变量的类型取决于变量值的类型。内存变量的类型有字符型、数值型、货币型、逻辑型、日期型和日期时间型6种。2)内存变量(1)内存变量的赋值给内存变量赋值的命令有以下两种格式。格式1:内存变量=表达式格式2:STORE表达式to内存变量表功能:•先计算表达式的值,然后把表达式的值赋给一个或几个内存变量。格式1只能给一个内存变量赋值。格式2可以同时给多个内存变量赋相同的值。•变量在使用之前并不需要特别声明(这点和其他程序设计语言有所不同),当用赋值命令给变量赋值时,如果变量不存在,那么系统会自动创建。•如果要改变内存变量的值和类型,可以通过为内存变量重新赋值来完成。13【实例2-2】内存变量的赋值store20+2tox,y&&创建变量x和y,数据类型为数值型,变量的值均为22name=张宁&&创建变量name,数据类型为字符型,变量的值为张宁x=.T.&&变量x的数据类型为逻辑型,值为T(2)内存变量的输出内量变量的输出有以下两种格式。格式1:?[表达式]格式2:??[表达式]功能:计算表达式的值,并把结果显示在屏幕上。格式1换行输出表达式的值,格式2的结果不换行输出。15【实例2-3】输出变量的值store15toa,b&&创建变量a,b,数据类型为数值型,值为15?a,b+1??a,b-1&&不换行,在前面的结果后面直接输出?a,b3)数组变量数组的定义格式如下。格式1:DIMENSION数组名(下标上界1[,下标上界2])格式2:DECLARE数组名(下标上界1[,下标上界2])说明:两条命令的功能完全相同,用于定义一维或者二维数组。例如:DIMENSIONx(3)定义了一个名为x的一维数组,数组元素有3个:x(1)、x(2)、x(3)。17例如:DECLAREY(2,3)定义了一个名为Y的二维数组,数组元素有6个:y(1,1)、y(1,2)、y(1,3)、y(2,1)、y(2,2)和y(2,3)。由此可见,数组下标的下界值为1,上界值由定义命令确定。2.2VF中的常用函数函数的一般格式为:函数名([参数表])在书写函数时,一定不要写错函数名,括号不能丢掉,另外,不同的函数有不同的参数表。函数运算后会有一个值,称为函数值。VisualFoxPro提供的函数有300多个,主要有数值函数、字符函数、日期函数、类型转换函数和测试函数等。通过查阅“帮助”中的“语言参考”,可以了解到函数的使用方法。下面我们选择一些较为常用的函数予以介绍。2.2.1数值函数函数格式功能简述示例结果ABS(N)求N的绝对值ABS(78)ABS(-67)7867INT(N)取N的整数部分INT(14.3)INT(-14.3)14-14SQRT(N)计算N的算术平方根,表达式N的值必须大于等于0SQRT(9)3ROUND(N1,N2)按指定的小数位数N2对N1的值进行四舍五入处理。如果小数位数小于0,表示要舍入的整数位数ROUND(234.567,2)ROUND(234.567,-2)234.57200MOD(N1,N2)计算两个表达式相除的余数,函数值的符号与N2的符号相同。MOD(23,5)320【实例2-8】将一个三位数反向输出X=123X1=int(x/100)X2=int(mod(X,100)/10)X3=mod(X/10)?X1+X2*10+X3*1002.2.2字符函数函数名称函数格式功能简述示例结果取子串函数LEFT(C,N)从C串中左边第一个字符开始,截取N个字符left(“Study”,2)StRIGHT(C,N)从C串中右边第一个字符开始,截取N个字符right(“Study”,2)dySUBSTR(C,N1[,N2])从C串的第N1的字符开始,截取N2个字符substr(‘Visual’,2,3)isu求字符串长度函数LEN(C)求得C串的字符数(长度)len(“China”)5删除字符串前后空格函数LTRIM(C)删除C串的前导空格字符ltrim(“□a□b□c”)a□b□cRTRIM(C)删除C串尾部空格字符rtrim(“a□b□c□”)a□b□cALLTRIM(C)删除C串的前导和尾部空格alltrim(“□a□b□c□”)a□b□c产生空格函数SPACE(N)返回一个包含N个空格的字符串“A”+space(3)+“B”A□□□B函数名称函数格式功能简述示例结果大小写字母转换函数LOWER(C)将C串中的字母全部变成小写字母,其他字符不变lower(“aAbBcC2”)aabbcc2UPPER(C)将C串中的字母全部变成大写字母,其他字符不变upper(“abBC2”)ABBC2求子串位置函数AT(C1,C2)若C1存在于C2中,则给出起始位置;若不存在,则函数值为0AT(“abc”,“vabcde”)2ATC(C1,C2)功能同AT函数,只是ATC函数在比较子串时不区分大小写AT(“aBc”,“vabcde”)2宏替换函数&字符型内存变量[.C]替换出字符型变量的值,即去掉定界符。详细介绍见“注意”内容X=1997?&X+52002计算字符串长度函数LEN(C)计算字符串C的长度,即字符个数LEN(‘安保法4-9’)92.2.3日期和时间函数函数名称函数格式功能简述示例结果日期和时间函数DATE()返回当前系统日期,此日期由Windows系统设置,函数值为D型DATE()具体结果与系统设置有关TIME()返回当前系统时间,形式为hh:mm:ss,函数值为C型time()具体结果与系统有关求年份、月份和天数函数YEAR(D|T)返回D或T型表达式所对应的年份值A={^2014-7-8}?Year(A)?MONTH(A)?DAY(A)201478MONTH(D|T)返回D或T型表达式所对应的月份值DAY(D|T)返回D或T型表达式所对应的天数求时、分、秒函数HOUR(T)返回T所对应的小时部分(24小时制)A={^2014-7-8,15:56:10}?Hour(A)?Minute(A)?SEC(A)155610MINUTE(T)返回T所对应的分钟部分(24小时制)SEC(T)返回T所对应的秒数部分(24小时制)2.2.4数据类型转换函数函数格式功能简述示例结果STR(N1[,N2][,N3])把N1转换成小数位为N3,总长度为N2的字符型数据,函数值为C型。省略N2、N3时表示不保留小数位长度STR(4)STR(-3.14,5,2)4-3.14VAL(C)将C串中的数字字符转换成对应数值,转换结果取两位小数。函数值为N型VAL(“23.756a”)23.76CTOD(C)把C串转换成对应日期型数据。函数值为D型。C串应该符合SETDATETO命令所设置的日期格式CTOD(“2002/10/12”)2002/10/12DTOC(D[,1])把日期型数据D转换成相应的字符串。函数值为C型。如果使用参数1,则字符串的格式固定为YYYYMMDDDTOC({^2002-11-27})DTOC({^2002-11-27},1)11/27/02200211272.2.5测试函数函数名称函数格式功能简述测试文件头函数BOF()测试当前表文件中记录指针是否移到表起始处。如果记录指针到达的文件头,则函数返回真(.T.),否则返回假(.F.)。测试文件尾函数EOF()测试记录指针是否移到表结束处。如果记录指针指向文件尾,则函数返回真(.T.),否则为假(.F.)。测试当前记录号函数RECNO()返回当前记录指针指向的记录号。对于空表返回值为1。测试记录个数函数RECCOUNT()返回当前表中记录个数。如果工作区中没有打开表则返回0条件测试函数IIF(lExp,eExp1,eExp2)逻辑表达式lExp的值为真(.T.),返回表达式eExp1的值;否则返回表达式eExp2的值。eExp1和eExp2可以是任意数据类型的表达式2.2.6其他函数MessageBox()函数格式:MessageBox(信息内容[,对话框类型[,对话框标题]])功能:以窗口形式显示信息,返回值为数字。组成部分值含义1按钮数目与按钮形式0只显示“确定”按钮1显示“确定”和“取消”按钮2显示“终止”、“重试”和“忽略”按钮3显示“是”、“否”和“取消”按钮4显示“是”和“否”按钮5显示“重试”和“取消”按钮2图标样式16显示红色叉号错误图标32显示蓝色问号图标48显示黄色惊叹号图标64显示蓝色信息图标3默认按钮0第一个按钮是默认值256第二个按钮是默认值512第三个按钮是默认值选择按钮返回值确定1取消2终止3重试4忽略5是6否72.3运算符和表达式表达式是由常量、变量、函数及其他数据容器与运算符组成的有意义的运算式。此外,也可以将单个常量、变量或函数看成是一个表达式。每个表达式经过运算,都有一个确定的值,称为表达式的
本文标题:第2章 VFP语言基础
链接地址:https://www.777doc.com/doc-3149297 .html