当前位置:首页 > 机械/制造/汽车 > 第02章 VFP的数据类型
1第二章VFP的数据类型2本章要点1.掌握数据库类型和数据存储(常量、变量、*数组、字段、对象)2.掌握各类型数据运算的操作符3.掌握常用系统函数的用法4.掌握NULL值的处理5.补充自定义函数的概念3内容2.1数据类型2.2数据存储2.3函数2.4表达式42.1数据类型VFP提供了多种数据类型,各种类型的数据可以保存在表、数组、变量以及其他数据容器中。所有数据都有其所属类型。类型就是对数据的允许取值以及这个值的范围进行的说明。VFP的数据类型,见P23的表2-1。51.字符型字符型数据由单引号、双引号、方括号括起来的任意字符组成,最长254个字符。例:“ABC”,‘张华’,’12345‘,[12]注:单引号、双引号、方括号必须是英文方式的。2.数值型数值型用来表示整数或实数。包含数字0~9、正号(+)、负号(-)、小数点(.)。例:100-2.57科学记数法:1e-3(或1E-3)即1×10-3=0.0011e3(或1E3)即1×10+3=100063.日期型日期型用于存储有关年月日数据,占8个字节。数据书写格式:{^yyyy/mm/dd},y-年、m-月、d-日{^2004/03/30}&&是2004年3月30日数据输出格式:默认格式为美国日期格式:mm/dd/yy?{^2005/09/23}&&显示:09/23/05数据输出格式可以设置7可以通过对话框也可以通过命令设置。命令设置如:setdatetoymd?{^2005/9/23}显示:05/09/23setdateansi?{^2005/9/23}显示:05.09.23setdatetolong?{^2005/9/23}显示:2005年9月23日setstrictdateto0不进行严格日期检查,适用于6.0以上版本。8setdatetolongsetdatetodmysetdateansi菜单工具|选项94.日期时间型用于表示日期、时间兼有的数据。书写格式:{^yyyy/mm/dd[hh[:mm[:ss]][a|p]]}h-时、m-分、s-秒,a-上午、p-下午,默认是a例:?{^2005/09/2510:30pm}&&显示:09/25/0510:30:00PM?{^2005/09/2510:30p}结果同上注:1、系统默认日期是1899年12月30日setstrictdateto0setdatetolong?{10:30pm}&&显示:1899年12月30日,22:30:002、系统默认时间是午夜零点?{^2005/09/25::}&&显示:2005年9月25日,0:00:00规则:午夜0点{00:00:00AM}、{12:00:00AM}、{00:00:00}中午12点{00:00:00PM}、{12:00:00PM}、{12:00:00}105.逻辑型逻辑型数据只含有两个值:真(.T.)或假(.F.),占1个字节。6.货币型表示货币量,使用货币类型需在数字前加上$符号。$123.4当小数点超过4位,自动四舍五入到4位8.备注型☆备注型用于在表中存储文本数据,为指向具体文本的指针,4个字节。文本的文件名为.FTP。9.通用型☆VFP特色类型,用于在表中存储OLE对象,在表中它指向具体对象的内容,4个字节的引用。112.2数据存储在VFP中允许使用常量、变量和数组来存储数据,还可以使用记录和对象。这些常量、变量、数组、记录和对象称为存储数据的容器。122.2.1VFP中的命名规则存储数据的容器需要名称,如变量名、数组名、表的字段名等。VFP中的命名规则:允许使用字母、下划线、汉字、数字符号;只能以字母、汉字或下划线开头;不允许使用VFP的保留字;长度为1—128个,除自由表的字段名、表的索引标识名外(10个)。例:合法的:abx_2我的var_123不合法的:6aba&bab#13常量是一个在整个操作过程中保持不变的量。常量有多种类型:字符型常量:“ABC”,‘张华’,[asd]数值型常量:3.1415926逻辑型常量:只有两值.T.、.F.日期型常量:{^2004/03/30}{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}或{^yyyy/mm/dd[hh[:mm[:ss]][a|p]]}日期/日期时间常量{^2005/09/2510:30pm}2.2.2常量14*编译时常量,用#define定义,在程序设计时定义。#definepi3.14#defineok“结束”不能在交互方式下使用15变量是内存中的一个存储单元,变量名是存储单元的符号标识。通过变量名可以访问该存储单元。VFP的内存变量不需要特别声明。1.变量的创建使用赋值等命令创建变量,其格式为:变量名=表达式或者STORE表达式TO变量名列表例如A=“314”STORE1TOA,B,C2.2.3变量162.访问变量变量可以用变量名来访问;但若存在同名的字段变量,则优先访问字段变量;若特指访问内存变量,需在变量名前加前缀;M->或M.符号。例如:M-xm或M.xm3.显示内存变量用命令:DisplayMemory或:ListMemory174.释放内存变量退出VFP时,内存变量自动释放;用命令释放内存变量:例:Releasea,b,c&&释放a,b,c变量ReleaseAllLikec*&&释放以c开头的所有内存变量ReleaseAllExceptn*&&释放除了以n开头的所有内存变量ClearMemory&&释放所有用户内存变量*5.保存和恢复内存变量SaveAllLikem*Tod1&&将所有一m开头的变量寸入d1.mem文件中RestoreFromd1&&把d1.mem文件中所有变量读入内存。182.3函数函数是一个预先编制好的程序模块,可供VFP程序在任何地方调用。VFP中的许多操作和功能是通过函数来完成和实现的,函数为VFP课程的重点章节,我们需熟练掌握常用系统函数的使用。由系统提供的称为系统函数由用户定义的称为用户自定义函数调用函数形式:函数名(参数表)调用函数时注意:函数名、参数、函数值3部分192.3.1数据类型函数一、数学运算函数1、ABS(exp)返回exp的绝对值,exp可以是实数、整数表达式。2、INT(exp)返回exp的整数部分,取整操作。exp可以是实数、整数表达式。3、ROUND(exp1,exp2)根据exp2指定的位数,对exp1进行四舍五入操作,保留相应的小数位数。若exp2的值为负数,则表示对整数部分舍至第几位数,得到值将尾随exp2个零。?Round(1024.1992,2)&&显示1024.20?round(12345.672,1)&&显示12345.7&&根据第二项,保留小数位数,后一位四舍五入.?round(12345.612,-1)&&显示12350&&整数四舍五入至第1位.?round(1234.6,-2)&&显示1200?round(1234567,-2)&&显示1234600204、MOD(exp1,exp2)函数值为exp1除以exp2的余数,mod()同%。函数值的计算公式如下:Mod(a,b)=a-[a/b]*b其中[a/b]取不大于a/b的最大整数。5、MAX(exp1,exp2,……)函数值为所给表达式中最大的值,所有表达式必须同类型。6、MIN(exp1,exp2,……)函数值为所给表达式中最小的值,所有表达式必须同类型。例:?Mod(23,4)&&显示3?mod(3,6)&&显示3?Mod(23,7),mod(-23,7),mod(23,-7),mod(-23,-7)显示:25-5-2?Mod(2,6),mod(2,-6),mod(-2,6),mod(-2,-6)显示:2-44-2•函数值的符号取第二项的符号;•参数同号,取2个数的余数;•参数异号,先不考虑符号,取除数与余数相减值;•公式:Mod(a,b)=a-[a/b]*b217、RAND([exp])函数值为一个(0,1)区间上的数,exp是随机种子,如果exp是相同的正整数,则总是产生相同的随机序列。?RAND(1)&&显示随机数0.038、SIGN(exp)9、SQRT(exp)函数值为exp值的平方根SIGN(exp)=1exp00exp=0-1exp02210、CEILING(exp)函数值为大于或等于exp的最小整数Ceiling(4.2)值为什么?Ceiling(-4.2)值为什么?11、FLOOR(exp)函数值为小于或等于exp的最大整数?floor(-2.6)显示??floor(2.6)显示?23二、字符型函数1、ALLTRIM(exp)删除字符表达式的前后空格符,返回删除空格后的字符串。2、LTRIM(exp)删除字符表达式的左边空格符,返回删除空格后的字符串。3、TRIM(exp)/RTRIM(exp)删除字符表达式的右边空格符,返回删除空格后的字符串。[注]2个函数功能相同;如果表达式全部由空格组成,则函数值为空串;244、LEFT(exp1,exp2)函数值:截取字符串表达式exp1最左边的exp2个字符。注:若exp2的值大于串的长度,函数值为整个串;若exp2的值小于或等于零,函数值为空串;5、RIGHT(exp1,exp2)函数值:截取字符串表达式exp1最右边的exp2个字符。注:若exp2的值大于串的长度,函数值为整个串;若exp2的值小于或等于零,函数值为空串;6、SUBSTR(exp1,exp2[,exp3])函数值:截取字符串表达式exp1中,从第exp2位置开始,取exp3个字符。注:若缺省exp3,截取的字符串为从exp2位置开始到最后的所有字符。特殊情况?left(“abcdefgh”,10)&&显示abcdefgh?left(“abcdefgh”,0)&&显示空串?right(“abcdefg”,20)&&显示abcdefg?right(“abcdefg”,0)&&显示空串?SUBSTR(“扬州大学”,3,4)&&显示:州大?SUBSTR(“扬州大学”,3)&&显示:州大学257、AT(exp1,exp2[,exp3])函数值:字符表达式exp1在字符表达式exp2中第exp3次出现的位置。注:若exp1不在exp2中,则函数值为0。若exp3缺省,默认值为1。8、LEN(exp)函数值:字符表达式exp中字符的个数。9、SPACE(exp)函数值:exp个空格组成的字符串。?Len(‘abcde’),at(‘c’,’abcdef’)53?at(‘c’,’abcabcabcdef’,3)9?‘a’+space(5)+‘b‘ab&&a与b之间有5个空?len(space(5))526三、日期时间函数1、TIME()函数值:系统的当前时间。注:如果写参数(任何数据),函数值精度可达到1%2、DATE()函数值:系统的当前日期。3、DATETIME()函数值:系统的当前日期和时间。例:?datetime()显示系统的日期和时间274、YEAR(exp)函数值:日期表达式或日期时间表达式中的4位年份。函数值为数值型。5、MONTH(exp)/CMONTH(exp)函数值:日期表达式或日期时间表达式中的月份。MONTH(exp)函数值为数值型,CMONTH(exp)函数值为字符型。6、DAY(exp)函数值:日期表达式或日期时间表达式的值是该月中的第几天。函数值为数值型。7、DOW(exp)/CDOW(exp)函数值:日期表达式或日期时间表达式的值是一周的第几天。DOW(exp)函数值为数值型,用1-7表示周日—周六,CDOW(exp)函数值为字符型,用Sunday----Saturday表示周日—周六?year(date())&&显示系统当前日期的年份,4位数?year({^2005/06/03})+1&&显示2006数值型?Dow(date())&&显示一周中的第几天28四、转换函数1、STR(exp1[,exp2[,exp3]])函数值:数值表达式
本文标题:第02章 VFP的数据类型
链接地址:https://www.777doc.com/doc-4050471 .html