《二章VisualFoxPro的数据与数据运算》由会员分享,可在线阅读,更多相关《二章VisualFoxPro的数据与数据运算(41页珍藏版)》请在金锄头文库上搜索。
1、VFP课程建设组课程建设组第二章第二章Visual FoxPro的数据的数据与数据运算与数据运算目录数据类型数据类型 1常量与变量常量与变量 2其他数据存储容器其他数据存储容器 3运算符与表达式运算符与表达式 4常用函数常用函数 5http:/V FoxPro程序设计数据类型 v VFP中每一个数据都有一定的类型,数据类型是数据的基本属性,它决定了数据的存储方式和运算方式。字符型字符型 (Character) 数值型数值型(Numeric) 货币型货币型(Currency) 日期型日期型(Date) 日期时间型日期时间型(DateTime) 逻辑型逻辑型(Logical) Image info
2、rmation in product Image - CD: School life (PhotoDisc) Note to customers : This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use. http:/V FoxPro程序设计数据类型双精度型双精度型(Double) 浮点型浮点型(Float) 整型整型(Integer) 通用型通用型(General) 备注型备注型(Memo) ht
3、tp:/V FoxPro程序设计常量与变量 v常量常量 在程序的运行过程中,把需要处理的数据存放在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为在内存储器中,称始终保持不变的数据为“常量常量”,其值和类型始终保持不变。,其值和类型始终保持不变。数值型常量数值型常量 字符型常量字符型常量 逻辑型常量逻辑型常量 日期型常量和日期时间型常量日期型常量和日期时间型常量 货币型常量货币型常量http:/V FoxPro程序设计日期型常量日期型常量传统的日期格式传统的日期格式 美国日期格式“mm/dd/yy”(月日年)“mm/dd/yyyy” 日期型常量的格式日期型常量的格式严
4、格的日期格式严格的日期格式 yyyy-mm-ddhttp:/V FoxPro程序设计影响日期格式的设置命令1 1SET DATE TO AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | USA | MDY | DMY | YMD2 2SET CENTURY ON/OFF3 3SET MARK TO 日期分隔符http:/V FoxPro程序设计变量v变量变量 变变量量是是指指在在在在命命令令操操作作或或程程序序的的执执行行过过程程中中其其值值可可以以改改变变的的量量,Visual FoxPro中中的的变变量量可可分分
5、为为内内存存变变量量和和字字段段变变量量两两大大类类,内内存存变变量量又又包包括括用用户户定义的内存变量、数组变量和系统内存变量。定义的内存变量、数组变量和系统内存变量。一般内存变量一般内存变量数组数组 系统变量系统变量字段变量字段变量 http:/V FoxPro程序设计变量v变量的作用域包括定义它的过程以及该过程所调用变量的作用域包括定义它的过程以及该过程所调用的子过程范围。的子过程范围。v变量名命名规则变量名命名规则 :由字母、汉字、数字及下划线组成,不能以数字开头,由字母、汉字、数字及下划线组成,不能以数字开头,中文版中文版Visual FoxPro可以汉字开始。可以汉字开始。长度为长
6、度为1128个字符,其中每个汉字占两个字符。个字符,其中每个汉字占两个字符。不能使用不能使用Visual FoxPro的保留字。的保留字。http:/V FoxPro程序设计一般内存变量 v内存变量的赋值内存变量的赋值 格式格式1:内存变量表达式:内存变量表达式格式格式2:STORE 表达式表达式 TO 内存变量表内存变量表v内存变量的显示输出内存变量的显示输出格式格式1:DISPLAY|LIST MEMORYLIKETO PRINTER|TO FILE内存变量表达式内存变量表达式格式格式2:? ?v内存变量的清除内存变量的清除格式格式1:CLEAR MEMORY格式格式2:RELEASE A
7、LLLIKE|EXCEPThttp:/V FoxPro程序设计数组 v数组是数组是组按照一定顺序排列的内存变量,其中各组按照一定顺序排列的内存变量,其中各个内存变量称为数组元素。数组元素用数组名及其个内存变量称为数组元素。数组元素用数组名及其在数组中排列位置的下标来表示,下标的个数称为在数组中排列位置的下标来表示,下标的个数称为数组的维数。数组的维数。 v VFP只支持一维数组和二维数组。只支持一维数组和二维数组。定义数组定义数组 命令格式为:命令格式为: DIMENSION|DECLARE数组名数组名(下标下标1,下标下标2),数组名数组名(下标下标1,下标下标2)数组的赋值数组的赋值htt
8、p:/V FoxPro程序设计其他数据存储容器v字段、记录和数据表字段、记录和数据表 v对象对象 http:/V FoxPro程序设计运算符与表达式 算术运算符和算术表达式算术运算符和算术表达式字符串运算符和字符串表达式字符串运算符和字符串表达式日期运算符和日期表达式日期运算符和日期表达式关系运算符和关系表达式关系运算符和关系表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式运算符和表达式运算符和表达式运算符和表达式运算符和表达式http:/V FoxPro程序设计算术运算符与算术表达式 v算术表达式也称数值型表达式,是由算术运算符将算术表达式也称数值型表达式,是由算术运算符将数值型数据连接起
9、来的式子,其运算结果仍然是数数值型数据连接起来的式子,其运算结果仍然是数值型数据。值型数据。v算术运算符的优先级算术运算符的优先级一级:()一级:()二级:二级:或或*(乘方)(乘方)三级:三级:*(乘),(除),(求余)(乘),(除),(求余)四级四级:+(加),(加),-(减)。(减)。http:/V FoxPro程序设计字符串运算符和字符串表达式 v字符表达式是用字符运算符将字符数据连接起来的字符表达式是用字符运算符将字符数据连接起来的式子,其运算结果还是字符型。式子,其运算结果还是字符型。v字符运算符有:字符运算符有:+,-。+:前后两个字符串首尾相连接形成一个新的字符串。:前后两个字
10、符串首尾相连接形成一个新的字符串。-:连接前后两个字符串,并将前串的尾部空格移到合并:连接前后两个字符串,并将前串的尾部空格移到合并后的新串尾部。后的新串尾部。http:/V FoxPro程序设计日期运算符和日期表达式v日期时间表达式中可使用的运算符:日期时间表达式中可使用的运算符:+和和-。格式格式结果及类型结果及类型日期日期+天数(或者天数天数(或者天数+日期)日期)日期型,指定日期若干天后的日期日期型,指定日期若干天后的日期日期日期-天数天数日期型,指定日期若干天前的日期日期型,指定日期若干天前的日期日期日期-日期日期数值型,两个指定日期间相差的天数数值型,两个指定日期间相差的天数日期时
11、间日期时间+秒数(或者秒数秒数(或者秒数+日日期时间)期时间)日期时间型,指定日期时间若干秒后的日日期时间型,指定日期时间若干秒后的日期时间期时间日期时间日期时间-秒数秒数日期时间型,指定日期时间若干秒前的日日期时间型,指定日期时间若干秒前的日期时间期时间日期时间日期时间-日期时间日期时间数值型,两个指定日期时间相差的秒数数值型,两个指定日期时间相差的秒数http:/V FoxPro程序设计关系运算符和关系表达式 v关系表达式是由关关系表达式是由关系运算符连接两个系运算符连接两个同类数据对象进行同类数据对象进行关系比较的运算式。关系比较的运算式。其运算结果是逻辑其运算结果是逻辑数据。数据。v格
12、式:格式:关系运算符关系运算符运算符运算符功功 能能表表 达达 式式 举举 例例结果结果小于小于15大于大于A 1.T.=等于等于2+4 = 3*5.F.、#、!不等于不等于5 -10.T.=小于或等小于或等于于abc =大于或等大于或等于于10-10-02=10/01/02.T.=字符串恒字符串恒同同abc=abcabc.F.$包含包含bcd$abcde.T.http:/V FoxPro程序设计字符型数据比较v单个字符单个字符 v字符串字符串相等比较相等比较 恒同比较恒同比较大小比较大小比较 其他比较 字符串精确比较与EXACT设置http:/V FoxPro程序设计逻辑运算符和逻辑表达式
13、v由逻辑运算将逻辑型数据对象连接而成的式子称为逻由逻辑运算将逻辑型数据对象连接而成的式子称为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑型数据。辑型数据。 运算符运算符 功能功能优先等级优先等级()()圆括号圆括号最高最高 最低最低 .NOT.或!或!逻辑非,对右侧逻辑型值取反逻辑非,对右侧逻辑型值取反.AND.逻辑与,两侧的逻辑型值同时为逻辑与,两侧的逻辑型值同时为.T.,结果才为,结果才为.T.,否则为,否则为.F.OR.逻辑或,两侧逻辑型值同时为逻辑或,两侧逻辑型值同时为.F.,结果才为,结果才为.F.,否则为,否则为.T.http:/
14、V FoxPro程序设计多种运算符混合表达式 v优先级依次为:先执行算术运算,字符运算和日期优先级依次为:先执行算术运算,字符运算和日期运算,再执行关系运算,最后执行逻辑运算。括号运算,再执行关系运算,最后执行逻辑运算。括号括起来的应优先运算。括起来的应优先运算。 http:/V FoxPro程序设计常用函数 v函数函数(Function)是一种能够完成某种特定操作或是一种能够完成某种特定操作或功能的数据形式。使用函数需要若干参数功能的数据形式。使用函数需要若干参数(自变量自变量),函数的运算结果称为函数值或返回值,函数调用,函数的运算结果称为函数值或返回值,函数调用的格式为:的格式为: 函数
15、名函数名(参数参数1,参数参数2,)http:/V FoxPro程序设计常用函数数值处理函数数值处理函数 字符函数字符函数日期时间函数日期时间函数 数据类型转换函数数据类型转换函数 测试函数测试函数 常用函数常用函数常用函数常用函数http:/V FoxPro程序设计数值处理函数 v取整函数取整函数格式:格式:INT()功能:返回数值型表达式的整数部分功能:返回数值型表达式的整数部分v四舍五入函数四舍五入函数 格式:格式:ROUND(,)功能:对功能:对的值进行四舍五入运算。的值进行四舍五入运算。v取绝对值函数和符号函数取绝对值函数和符号函数格式:格式:ABS() SIGN()功能:功能:AB
16、S()求指定数值型表达式的绝对值。求指定数值型表达式的绝对值。SIGN()求指求指定数值型表达式的符号,当表达式运算结果为正、负和定数值型表达式的符号,当表达式运算结果为正、负和零时,函数值分别为零时,函数值分别为1、-1、0。http:/V FoxPro程序设计数值处理函数v求最大值函数求最大值函数 格式:格式:MAX(,) 功能:计算各个数值型表达式的值,并返回其中的最大功能:计算各个数值型表达式的值,并返回其中的最大值。值。v求最小值函数求最小值函数格式:格式:MIN(,)功能:计算各个数值型表达式的值,并功能:计算各个数值型表达式的值,并返回其中的最大值。返回其中的最大值。功能:计算各
17、个数值型表达式的值,并返回其中的最小功能:计算各个数值型表达式的值,并返回其中的最小值。值。http:/V FoxPro程序设计数值处理函数v求平方根函数求平方根函数 格式:格式:SQRT()功能:返回指定数值型表达式的平方根。数值型表达式功能:返回指定数值型表达式的平方根。数值型表达式的值不能为负。的值不能为负。v求余函数求余函数(模函数模函数)格式:格式:MOD(,)功能:返回数值型表达式功能:返回数值型表达式1除以数值型表达式除以数值型表达式2的余数,的余数,余数的正负号与除数相同。余数的正负号与除数相同。http:/V FoxPro程序设计数值处理函数v圆周率函数圆周率函数 格式:格式
18、:PI()功能:返回圆周率,该函数没有自变量,返回值为数值功能:返回圆周率,该函数没有自变量,返回值为数值型。型。v随机函数随机函数 格式:格式:RAND()功能:返回功能:返回0-1之间一个随机数之间一个随机数http:/V FoxPro程序设计字符函数 v求字符串长度函数求字符串长度函数 格式:格式:LEN()功能:返回指定字符串表达式的长度,即包含字符的个数,一个汉功能:返回指定字符串表达式的长度,即包含字符的个数,一个汉字占字占2个字节的长度。函数值为数值型个字节的长度。函数值为数值型 v求子串位置函数求子串位置函数 格式:格式:AT(,) ATC(,)功能:功能:AT的函数值为数值型
19、。如果的函数值为数值型。如果是是的子串,则返回的子串,则返回值的首字符在值的首字符在值中的值中的位置;若不是子串,则返回位置;若不是子串,则返回0。第。第3个个用于表明要在用于表明要在值中搜索值中搜索值的第几次出现的起始位置,值的第几次出现的起始位置,其默认值是其默认值是1,可缺省。,可缺省。 ATC与与AT的功能类似,但在子串比较时不区分大小写。的功能类似,但在子串比较时不区分大小写。 http:/V FoxPro程序设计字符函数 v空格生成函数空格生成函数 格式:格式:SPACE()功能:返回由指定数目的空格组成的字符串。功能:返回由指定数目的空格组成的字符串。 v求子串函数求子串函数 格
20、式:格式:LEFT(,) RIGHT(,) SUBSTR(,)功能:功能:LEFT在字符型表达式中,从左端截取一个指定长度的子串作在字符型表达式中,从左端截取一个指定长度的子串作为函数值。为函数值。 RIGHT在字符型表达式中,从右端截取一个指定长度的子串作为函在字符型表达式中,从右端截取一个指定长度的子串作为函数值。数值。 SUBSTR在字符型表达式中,截取一个子串,起点由数值型表达式在字符型表达式中,截取一个子串,起点由数值型表达式1给出;截取字符的个数由数值表达式给出;截取字符的个数由数值表达式2给出。如缺省数值型表达式给出。如缺省数值型表达式2,将从起点截取到字符型表达式的结尾。,将从
21、起点截取到字符型表达式的结尾。 http:/V FoxPro程序设计字符函数 v删除前后空格函数删除前后空格函数 格式:格式:TRIM/RTRIM() LTRIM() ALLTRIM()功能:功能:TRIM/RTRIM返回指定字符表达式值去掉尾部空格后形成的字返回指定字符表达式值去掉尾部空格后形成的字符串。符串。 LTRIM返回指定字符表达值去掉前导空格后形成的字符串。返回指定字符表达值去掉前导空格后形成的字符串。 ALLTRIM返回指定字符表达式值去掉前导和尾部空格后形成的字符返回指定字符表达式值去掉前导和尾部空格后形成的字符串。串。 v大小写转换函数大小写转换函数 格式:格式:LOWER(
22、字符型表达式字符型表达式) UPPER(字符型表达式字符型表达式)功能:将指定字符串中的大写字母转换为小写字母,其他字符不变。功能:将指定字符串中的大写字母转换为小写字母,其他字符不变。UPPER()将指定字符串中的小写字母转换成大写字母,其他字符不变。将指定字符串中的小写字母转换成大写字母,其他字符不变。 http:/V FoxPro程序设计字符函数 v子串替换函数子串替换函数 格式:格式:STUFF(,)功能:用功能:用的值替换的值替换中由中由和和指明的一个子串。替换和被替换的字指明的一个子串。替换和被替换的字符个数不要求相等。如果符个数不要求相等。如果值为值为0,则插在由则插在由指定的字
23、符前面。如果指定的字符前面。如果值是空串,那么值是空串,那么中由中由和和指明的子串被删去。指明的子串被删去。http:/V FoxPro程序设计日期时间函数 v系统日期和时间函数系统日期和时间函数 格式:格式:DATE() TIME() DATETIME()功能:功能:DATE()返回系统当前日期,返回值为日期型。默返回系统当前日期,返回值为日期型。默认格式为认格式为MM/DD/YY,可通过设置改变为其他格式。,可通过设置改变为其他格式。TIME()返回系统当前时间,返回值为字符型。以返回系统当前时间,返回值为字符型。以24小时制,小时制,hh:mm:ss格式返回。格式返回。 DATETIME
24、返回当前系统日期返回当前系统日期时间,函数值为日期时间型。时间,函数值为日期时间型。 http:/V FoxPro程序设计日期时间函数v求年份、月份和天数函数求年份、月份和天数函数 格式:格式:YEAR(|) MONTH(|) CMONTH (|) DAY(|)功能:功能:YEAR返回日期表达式或日期时间型表达式的年份返回日期表达式或日期时间型表达式的年份值,返回值为数值型。值,返回值为数值型。MONTH返回日期型表达式或日期返回日期型表达式或日期时间型表达式的月份值,返回值为数值型。时间型表达式的月份值,返回值为数值型。CMONTH返返回英文月份,返回值为字符型。回英文月份,返回值为字符型。
25、DAY返回日期型表达式返回日期型表达式或日期时间型表达式的日的数值,返回值为数值型。或日期时间型表达式的日的数值,返回值为数值型。http:/V FoxPro程序设计日期时间函数v星期函数星期函数 格式:格式:DOW(|) CDOW(|)功能:返回日期型表达式或日期时间型表达式的日号所功能:返回日期型表达式或日期时间型表达式的日号所对应的星期号。对应的星期号。CDOW返回英文星期号,返回值为字符返回英文星期号,返回值为字符型。型。http:/V FoxPro程序设计数据类型转换函数 v字符串转日期或日期时间函数字符串转日期或日期时间函数 格式:格式:CTOD() CTOT()功能:功能:CTO
26、D将将值转换成日期型数据。值转换成日期型数据。 CTOT将将值转换成日期时间型数据。值转换成日期时间型数据。 v日期或日期时间转字符串函数日期或日期时间转字符串函数 格式:格式:DTOC(|,1 TTOC(,1)功能:功能:DTOC将日期型数据或日期时间数据的日期部分转将日期型数据或日期时间数据的日期部分转换成字符串。换成字符串。TTOC将日期时间数据转换成字符串。将日期时间数据转换成字符串。 http:/V FoxPro程序设计数据类型转换函数 v数值转字符串函数数值转字符串函数 格式:格式:STR() 功能:将数值型表达式功能:将数值型表达式1代表的实际数值转换为字符串,代表的实际数值转换
27、为字符串,返回值为字符型。具体功能详见教材。返回值为字符型。具体功能详见教材。 v字符串转数值型函数字符串转数值型函数 格式:格式:VAL()功能:将由数字符号功能:将由数字符号(包括正负号、小数点包括正负号、小数点)组成的字符型组成的字符型数据转换成相应的数值型数据,返回值为数值型。数据转换成相应的数值型数据,返回值为数值型。 http:/V FoxPro程序设计数据类型转换函数 v字符转字符转ASCII码函数码函数 格式:格式:ASC()功能:返回字符型表达式中第功能:返回字符型表达式中第1个字符的个字符的ASCII码,返回码,返回值为数值型。值为数值型。 vASCII码转字符函数码转字符
28、函数 格式:格式:CHR()功能:将功能:将ASCII码转换为相应的字符。返回值为字符型。码转换为相应的字符。返回值为字符型。 http:/V FoxPro程序设计测试函数 v表文件头测试函数表文件头测试函数 格式:格式:BOF(|)功能:测试当前或指定工作区中数据表的记录指针是否功能:测试当前或指定工作区中数据表的记录指针是否指向文件首,即第指向文件首,即第1条记录之前。返回值为逻辑型,当指条记录之前。返回值为逻辑型,当指针指向文件首时为针指向文件首时为.T.。其他情况为。其他情况为.F.。 v表文件尾测试函数表文件尾测试函数 格式:格式:EOF(|)功能:测试当前或指定工作区中数据表的记录
29、指针是否功能:测试当前或指定工作区中数据表的记录指针是否指向最后一条记录之后。返回值为逻辑型。当指针指向指向最后一条记录之后。返回值为逻辑型。当指针指向最后一条记录之后时为最后一条记录之后时为.T.,其他情况为,其他情况为.F.。 http:/V FoxPro程序设计测试函数 v当前记录号测试函数当前记录号测试函数 格式:格式:RECNO(|)功能:测试当前或指定工作区中数据表的当前记录号,功能:测试当前或指定工作区中数据表的当前记录号,即记录指针当前指向的记录号。返回值为数值型。即记录指针当前指向的记录号。返回值为数值型。 v记录查找测试函数记录查找测试函数 格式:格式:FOUND(|)功能
30、:在用命令功能:在用命令LOCATE/CONTINUE、FIND或或SEEK后,后,测试是否查找到满足条件的记录,如果查找到,则返回测试是否查找到满足条件的记录,如果查找到,则返回.T.。 http:/V FoxPro程序设计测试函数 v记录个数测试函数记录个数测试函数 格式:格式:RECCOUNT(|)功能:测试当前或指定工作区中的数据表记录个数,包功能:测试当前或指定工作区中的数据表记录个数,包含已做逻辑删除的记录。返回值为数值型。含已做逻辑删除的记录。返回值为数值型。 v工作区号测试函数工作区号测试函数 格式:格式:SELECT(0/1/别名别名)功能;返回当前工作区号或未使用工作区的最
31、大编号,功能;返回当前工作区号或未使用工作区的最大编号,缺省缺省“0/1/别名别名”或者选取或者选取“0”,返回当前工作区号;,返回当前工作区号;选取选取“1”返回未使用工作区的最大编号。返回值为数值返回未使用工作区的最大编号。返回值为数值型。型。 http:/V FoxPro程序设计测试函数 v条件测试函数条件测试函数 格式:格式:IIF(,)功能:测试功能:测试的逻辑值,如果为的逻辑值,如果为.T.,函数,函数返回返回的值;否则,则返回的值;否则,则返回的值。返的值。返回值有多种类型。回值有多种类型。和和的类型不要求的类型不要求相同。该函数可以嵌套使用。相同。该函数可以嵌套使用。http:/V FoxPro程序设计VFP课程建设组课程建设组