VFPVisualFoxPro数据类型与数据运算.ppt

上传人:小飞机 文档编号:5452118 上传时间:2023-07-08 格式:PPT 页数:41 大小:348.50KB
返回 下载 相关 举报
VFPVisualFoxPro数据类型与数据运算.ppt_第1页
第1页 / 共41页
VFPVisualFoxPro数据类型与数据运算.ppt_第2页
第2页 / 共41页
VFPVisualFoxPro数据类型与数据运算.ppt_第3页
第3页 / 共41页
VFPVisualFoxPro数据类型与数据运算.ppt_第4页
第4页 / 共41页
VFPVisualFoxPro数据类型与数据运算.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《VFPVisualFoxPro数据类型与数据运算.ppt》由会员分享,可在线阅读,更多相关《VFPVisualFoxPro数据类型与数据运算.ppt(41页珍藏版)》请在三一办公上搜索。

1、Visual FoxPro 数据类型与数据运算,第三章,3.1 Visual FoxPro的数据类型3.2 Visual FoxPro的常量3.3 Visual FoxPro的变量3.4 Visual FoxPro 的内部函数3.5 Visual FoxPro 的表达式,数据具有数据类型和数据值两种基本属性,只有相同数据类型的数据才可以进行相应的运算。Visual FoxPro主要有以下数据类型:1字符型(Character,用字母C表示)构成:汉字、数字、字母、符号(标点符号、ASCII码符号)特点:不可运算 范围:1254字节 定界符:单引号、双引号、2数值型(Numeric,用字母N表示

2、)构成:数字、小数点、+、-(正负号)特点:可以运算 范围:120字节注:在Visual FoxPro中,具有数值特征的数据类型还有整型(Integer)、浮点型(Float)和双精度型(Double),不过这3种数据类型只能用于字段变量。,3.1 Visual FoxPro的数据类型,3日期型(Date,用字母D表示)按年代顺序表示日期的数据 构成:年、月、日 格式:mm/dd/yyyy 分隔符/空格 特点:可以运算 范围:8字节4日期时间型(Date Time,用字母T表示)构成:年、月、日、时间 格式:mm/dd/yyyy hh:mm:ss 特点:可以运算 范围:8字节5逻辑型(Logi

3、c,用字母L表示)描述客观事物真假的数据,用于表示逻辑判断结果。构成:真(.T.)、假(.F.)特点:可以运算(进行逻辑判断)范围:1字节,6货币型(Currency,用字母Y表示)数据是为存储货币值而使用的一种数据类型。它默认保留4位小数,占据8字节存储空间。7备注型(Memo,用字母M表示)用于描述较长的描述性内容 构成:跟字符相同,做为字符型的补充 范围:取决磁盘空间 注:它只用于表中字段类型的定义,字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.fpt)中,长度根据数据的内容而定。8通用型(General,用字母G表示)通用型数据中的OLE对象可以是电子表格、文档、图形

4、、声音等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据长度仅受限于磁盘空间。9.二进制字符型和二进制备注型这两类数据是以二进制格式存储的数据类型,只是用在表中字段数据的定义。所存储的数据不受代码页改变的影响,在一般的数据库表和自由表中较少使用。注意:在一个表中如果设置了多个备注型字段和多个通用型字段,在表中备注文件仅仅有一个文件。,1字符型常量 用定界符(单引号、双引号或中括号)括起来的一串字符,也称字符串。定界符必须匹配。,3.2 Visual FoxPro的常量,常量是在程序的运行过程中其值不变化的量。主要有以下形式:,例如:Central South Univers

5、ity、410075、教授 例如:中国的花朵、”中国人民财产”,如果某一定界符也是字符串内容的一部分,则需要用另外一种定界符为该字符串的定界符。,注意:不包含任何字符的字符串(“”)叫空串,它与包含空格的(“”)字符串不同。,2数值型常量,数值型常量就是平时所讲的数值,如123.345,由数字、小数点和正负号组成。数值型常量有两种表示方法:小数形式和指数形式,例如:75、-3.75是小数形式 0.6947E-6、4.9523E9分别表示 0.694710-6、4.9523109 是指数形式。E左边为数字部分,称为尾数,右边为指数部分,称为阶码。阶码只能是整数,尾数可以是整数,也可以是小数。尾数

6、与阶码均可正可负。,3日期型常量,日期型常量用 括起来的数据。Visual FoxPro的默认日期格式是美国日期格式:mm/dd/yyyy。例如:05/21/1964、05-21-64 严格的日期格式是:yy/mm/dd,除了有定界符()外,必须在前边加脱字符()。分隔符还可以使用:/-和空格。,4日期时间型常量,日期时间型常量也是用 括起了的数据。内容既含日期又含时间。默认格式是:mm/dd/yyyy,hh:mm:ssa|p例如:2008-2-12 12:04:55,命令格式:SET CENTURY ON|OFF|TO nCentury命令功能:设置显示日期时是否显示世纪。其中,ON表示年份

7、用4位表示;OFF(默认值)表示年份用2位表示;nCentury 是一个199的整数,代表世纪数。例3.1:set cent ona=2009-8-7?a&显示的值为08/07/2009 set cent off?a&显示的值为08/07/09set cent to 20cent?a&显示的值为08/07/09,(1)日期格式中的世纪值,(2)设置日期显示格式命令格式:SET DATE TO AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD系统默认为AMERICAN(美国日期格式),例3.2:a=2009-8-7s

8、et date to ansi?a&显示显示的值为set date to mdy?a&显示显示的值为08/07/09,(3)设置日期分隔符,命令格式:SET MARK TO 日期分隔符命令功能:设置显示日期时使用的分隔符,如/、-、.等。例3.3:a=2009-8-7set mark to“/?a&显示显示的值为08/07/09,5逻辑型常量,逻辑型常量用来表示逻辑真假的常量。只有“真”和“假”两种值。逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。逻辑型数据只占用一个字节。,6货币型常量,货币型常量的书写格式与数值型常量类似,但要加上一个前置的$。例如

9、,$3.1416。货币型常量不能采用指数形式。,3.3 Visual FoxPro的变量,变量是在程序的运行过程中其值变化的量。变量分为字段变量、内存变量、数组变量、系统变量和对象,变量的3个要素:变量名、数据类型和变量值。,命名规则,使用字母、汉字、下划线和数字组成。命名以字母或下划线开头。为避免误解、混淆,避免使用Visual FoxPro的保留字。字母不区分大小写。,字段变量,字段变量就是表中的字段名,它是表中最基本的数据单元。字段变量是一种多值变量,一个表有多少记录,该表的每一字段就有多少个值。,内存变量可以分为简单内存变量和数组两种。内存变量是一种临时工作单元。类型有字符型(C)、数

10、值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)等六种类型。内存变量名与字段变量同名时,则应该用如下格式进行访问:M.内存变量名 M-内存变量名,内存变量,(1)内存变量的赋值,格式1:=功能1:将的值赋于由所指定的内存变量。格式2:STORE TO 功能2:将的值赋于由所指定的一个或多个内存变量。,(2)内存变量的显示,格式:DISPLAY|LIST MEMORY LIKE TO PRINTER TO FILE 功能:显示当前已定义的内存变量的有关信息,包括变量名、作用域、类型和取值。LIKE选项表示显示与通配符相匹配的内存变量,在中允许使用符号?和*,分别代表单个字符

11、和多个字符。TO PRINTER或TO FILE 选项可将内存变量的有关信息在打印机上打印出来,或者以给定的文件名存入文本文件中(扩展名为.txt)。注:LIST为连续滚动显示。DISPLY为分屏显示。,例:STORE“好好学习VFP”TO A1,A2 A3=2009-8-9 DISP MEMORY LIKE A?屏幕显示显示的结果为:A1 Pub C“好好学习VFP”A2 Pub C“好好学习VFP”A3 Pub D 08/09/09,格式1:CLEAR MEMORY格式2:RELEASE ALL LIKE|EXCEPT 功能:清除内存变量并释放相应的内存空间。格式1是清除所有的内存变量,格

12、式2是清除指定的内存变量。,(3)内存变量文件的建立,格式:SAVE TO ALL LIKE|EXCEPT 功能:将所定义的内存变量的各种信息全都保存到一个文件中,其默认 的扩展名为.mem。,(4)内存变量的恢复,格式:RESTORE FROM ADDITIVE功能:将已存入内存变量文件中的内存变量从文件中读出,装入内存中。注:若命令中含有ADDITIVE任选项,系统不清除内存中现有的内存变量,并追加文件中的内存变量。,(5)内存变量的清除,例:A1=234A2=”234”A3=.F.A4=2007-08-19DISPLAY MEMORY LIKE A?SAVE TO AA ALL LIKE

13、 A?RELEASE A1,A2,A4DISPLAY MEMORY LIKE A?RESTORE FROM AADISPLAY MEMORY LIKE A?,3.3.4 数组变量,数组变量也是一种内存变量,只是数组变量需要先定义,后使用。,(1)数组的定义 DIMENSION(,(,下标上界2),两条命令的功能完全相同,用于定义一维或二维数组。下标上界是一数值量,下标的下界由系统统一规定为1。例:数组操作:CLEAR MEMORY DIMEN X(6),Y(3,4)X=10 Y(1,2)=2 Y(3)=.T.Y(7)=100 DISPLAY MEMORY LIKE X DISPLAY MEMO

14、RY LIKE Y,3.3.5 系统变量,(2)数组的赋值 数组元素在没有赋值前,其初值均为逻辑假(.F.)。VF中二维数组各元素在内存中按行的顺序存储,也可按一维数组元素的顺序来存取。,系统变量是由Visual FoxPro自身提供的内存变量。系统变量名都是以下划线开始,一般用户不使用它。,3.4 Visual FoxPro 的内部函数,函数的一般格式为:函数名(参数表)函数的类型分为数值函数、字符函数、日期函数、类型转换函数和测试函数等。,1.求绝对值函数格式:ABS()功能:求数值型表达式的绝对值。例如:STORE 10 TO X?ABS(15-X),ABS(X-15),3.4.1 数值

15、函数,2.求平方根函数格式:SQRT()功能:求数值型表达式的算术平方根。例如:?sqrt(64)3.求指数函数格式:EXP()功能:求自然指数的值。例如:?EXP(1),4.求对数函数格式:LOG()和LOG10()功能:LOG求自然对数,LOG10求以10为低的对数。,5.取整函数格式:INT()、CEILING()、FLOOR()功能:INT()返回数值表达式的整数部分 CEILING()返回大于或等于数值表达式的最小整数 FLOOR()返回小于或等于数值表达式的最大整数例如:X=3.2?INT(X),INT(-X),CEILING(X)?CEILING(-X),FLOOR(X),FLO

16、OR(-X),6.求余数函数格式:MOD(,)功能:求除以所得的余数。例如:MOD(10,3),MOD(-10,-3),MOD(10,-3),MOD(-10,3),1-1-2 2,例:输入任意一个三位数字,将它反向输出:X=123X1=INT(X/100)X2=INT(MOD(X,100)/10)X3=MOD(X,10)?X1+X2*10+X3*100,7.四舍五入函数格式:ROUND(,)功能:对求值并保留n位小数,从n+1位小数起进行四舍五入,n的值由expn2确定,若n小于0,则对的整数部分按n的绝对值进行四舍五入。,所得余数的符号和表达式2相同,被除数与除数异号,函数值为所得余数再上除

17、数,例:?ROUND(3.1415*3,2),ROUND(156.78,-1),ROUND(156.78,-2)8.求最大值和最小值函数格式:MAX(),)MIN(,),例如:?MAX(59,35,28),MAX(“2”,”1322”,”0567”),;MAX(“男”,”女”),MIN(“汽车”,”飞机”,”轮船”),说明:字符型数据:按ASCII码从小到大顺序为09,AZ,az 汉字:按拼音字母的顺序,从小到大。,1.宏代换函数格式:&功能:一是替换字符型内存变量的值,二是将数值型字符转换为数值型数据。如果该函数名与其后的字符无明确分界,则要用“”作函数结束标识。例如:HI=“您好“D=”H

18、I“?D?&D,3.4.2 字符函数,2.求字符串长度函数 格式:LEN(expc)功能:求字符串的长度,即所包含的字符个数。例如:?LEN(“计算机学院”),LEN(“我 要 学 习”),C2=“Computer”C1=“2”C=“C&C1”?&C1.2*3,&C 输出的结果为:66 Computer,a=”100“?a+100?&a+100?&a.0+100?&a.0+100,3.求子串位置函数格式:AT(,)、ATC(,)功能:求在的起始位置。若不存在,则函数返回值为0。ATC函数在子串比较时不区分字母大小写。例如:?AT(“345”,”123456”),AT(“5”,”12367”)?

19、AT(“abc”,”ABCDE abcde”),AT(“abc”,”ABDCE abdce”),4.取子串函数格式:LEFT(,)RIGHT(expc,SUBSTR(,功能:LEFT()从expc左边的第一个字符开始截取子串,RIGHT()从expc右边的第一个字符开始截取子串。SUBSTR()对expc从指定位置开始截取若干个字符。,5.删除字符串前后空格函数格式:LTRIM()、RTRIM()、ALLTRIM()功能:LTRIM()删除字符串的前导空格。RTRIM()删除字符串的尾部空格。ALLTRIM()删除字符串中的前导和尾部空格。例如:STORE SPACE(2)+TEST+SPAC

20、E(3)TO SS?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)?LEN(SS),LEN(TRIM(SS),LEN(LTRIM(SS)?LEN(ALLTRIM(SS),举例:STORE GOOD BYE!”TO X?LEFT(x,2),SUBSTR(x,6,2),SUBSTR(x,6),RIGHT(x,3),6.生成空格函数格式:SPACE()功能:生成若干个空格。例如:name=SPACE(8)?LEN(LTRIM(name),7.字符串替换函数格式:STUFF(,)功能:用去替换中由起始位置expn1开始所指定的expn2个字符。例如:STORE 中国 长沙 TO x?ST

21、UFF(x,6,4,北京),STUFF(X,5,0,”北京”),STUFF(X,5,10,”北京”),8.产生重复字符函数格式:REPLICATE(,)功能:重复给定字符串若干次,次数由expn给定。举例:?REPLICATE(*,6),9.大小写字母转函数格式:LOWER()、UPPER()功能:LOWER()将字符串中的大写字母转换成小写。UPPER()将字符串中的小写字母转换成大写。例如:a=ABcd?UPPER(a),LOWER(a),3.4.3 日期和时间函数,1.系统日期和时间函数格式:DATE()、TIME()、DATETIME()功能:DATE()给出当前的系统日期,TIME(

22、)给出当前的系统时间,形式为hh:mm:ss,函数值为字符型。DATETIME()给出当前的系统日期和时间,函数值为日期时间型。例如:假定现在系统的日期为2007/9/12 11:38:38 AM?DATE(),TIME(),DATETIME()输出的结果为:09/12/07 11:38:38 09/12/07 11:38:38 AM,2.求年份、月份和天数函数格式:YEAR(|)MONTH(|)DAY(|)功能:YEAR()返回表达式所对应的年份值。MONTH()返回表达式所对应的月份。DAY函数返回表达式所对应月份里面的天数。,例如:A=2007-04-16?YEAR(A),MONTH(A

23、),DAY(A),3.求时、分和秒函数格式:HOUR()MINUTE()SEC()功能:HOUR()返回表达式所对应的小时部分(按24小时制)。MINUTE()返回表达式所对应的分钟部分。SEC()返回表达式所对应的秒数部分。例如:a=2007-04-16,15:40:36?HOUR(a),MINUE(a),SEC(a),2.将ASCII值转换成相应字符函数格式:CHR()功能:将expn的值作为ASCII码,给出所对应的字符。该函数与ASC()函数正好相反。,1.将字符转换成ASCII码的函数格式:ASC()功能:给出指定字符串最左边的一个字符的ASCII码值。例如:?ASC(A),ASC(

24、a),ASC(0),ASC(1),3.4.4 数据类型转换函数,3.将字符串转换成日期或日期时间函数 格式:CTOD()、CTOT()功能:CTOD()将指定expc转换成日期型数据,CTOT()将指定的expc转换成日期时间型数据。,例如:SET DATE TO YMD SET CENTURY ON X=2007-04-16?CTOD(X)+104.将日期或日期时间转换成字符串函数格式:DTOC()、TTOC()功能:DTOC()将expd转换为字符型,TTOC()将日期时间数据转换为字符型。,5.将数值转换成字符串函数格式:STR(,)功能:将expn1的值转换成字符串。转换后字符串的长度

25、由expn2决定,保留的小数位数由exp3决定。,例如:N=-123.456?”n=”+STR(n,8,3)?STR(n,9,2),STR(n,6,2),STR(n,3),STR(n,6),STR(n)6.将字符串转换成数值函数格式:VAL()功能:将由数字、正负号、小数点组成的expc转换为数值,转换遇上非上述字符停止。,例3.34STORE-123 TO xSTORE 45 TO ySTORE A45 TO z?VAL(x+y),VAL(x+z),VAL(z+y)?VAL(“123.45A”),VAL(“123.4A5”),VAL(“123.A45”)?VAL(“12A3.45”),VAL

26、(“1A3.45”),VAL(“A123.45”),3.4.5 测试函数,1.数据类型测试函数格式:VARTYPE(,)功能:测试引号内表达式的数据类型,返回用字母代表的数据类型。函数值为字符型。未定义或错误的表达式返回字母U。例如:X=”AAA”Y=10 Z=$100.2?VARTYPE(X),VARTYPE(Y),VARTYPE(Z)2.表头测试函数格式:BOF()|)功能:测试指定或当前工作区的记录指针是否在表头,3.表尾测试函数格式:EOF(|)功能:测试指定或当前工作区中记录指针是否在表尾4.记录号测试函数格式:RECNO(|)功能:返回指定或当前工作区中当前记录的记录号。5.查找是

27、否成功测试函数格式:FOUND()功能:在当前或指定表中,检测是否找到所需的数据。,头,尾,记录1,记录2,记录3,记录N,TOP,BOTTOM,图 数据表逻辑结构,7.文件是否存在测试函数格式:FILE()功能:检测指定的文件是否存在。8.判断值介于两个值之间的函数格式:BETWEEN(,)功能:判断表达式的值是否介于相同数据类型的两个表达式值之间。例如:gz=375?BETWEEN(gz,260,650),9.条件函数IIF格式:IIF(,)功能:若expl的值为.T.,函数值为的值,否则为的值。举例:xb=女?IIF(xb=男,1,IIF(xb=女,2,3),3.5 Visual Fox

28、Pro 的表达式,将常量、变量和函数用运算符连接起来的式子称为表达式,根据运算符的不同,分为数值表达式、字符表达式、日期表达式、关系表达式和逻辑表达式等。3.5.1 数值表达式 用算术运算符将数值型数据连接起来的式子叫算术表达式。算术运算符有(按优先级从高到低的顺序排列):()(括号)、*或(乘方)、*(乘)、/(除)、%(求余数),+(加),-(减)。,3.5.2 字符表达式,1.连接运算 连接运算符有完全连接运算符“”和不完全连接运算符“”两种。“”:将两个字符串连接起来形成一个新的字符串。“”:去掉字符串1尾部的空格,然后将两个字符串连接起来,并将字符串1末尾的空格放在结果串的末尾。例如

29、:?“姓名”“李小四”+“张得华“2.包含运算包含运算的结果是逻辑值。一般格式为:$若包含在之中,其表达式值为.T.,否则为.F.。例如:?教授$副教授,”ac”$”abcdef”,3.5.3 日期和时间表达式,格式1:(-),结果为日期型格式2:,结果为数值型例如:A=2007-4-16 B=A+10?B-A,3.5.4 关系表达式,关系运算符有:(大于)、=(大于等于)、=(等于)、(精确等于)、或#或!=(不等于)。它们的运算优先级相同。关系表达式一般形式为:e1 e2 其中e1、e2可以同为数值型表达式、字符型表达式、日期型表达式或逻辑型表达式。但仅适用于字符型数据。关系表达式表示一个

30、条件,条件成立时值为.T.,否则为.F.。各种类型数据的比较规则如下:数值型和货币型数据比较:数值的大小进行比较,包括正负号。日期型和日期时间型数据比较:越早的越小,反之越大。逻辑型数据比较:.T.比.F.大。,例如:?“助教”教授”,“abc”a”,“”a”,“XYZ”a”SET EXACT OFF zc=教授?zc=教授,教授=zc,教授=LEFT(zc,4),zc=教,”abcd”=”a”A=100?A=A+100注:SET EXACT ON 来设置字符串精确比较,此时=和=作用相同,SET EXACT OFF设置字符非精确比较。,3.5.5 逻辑表达式,逻辑运算符有:NOT或.NOT.或!(逻辑非)、AND或.AND.(逻辑与)、OR或.OR.(逻辑或)。其运算优先级是NOT最高,OR最低。逻辑与与逻辑或是双目运算符,所构成的逻辑表达式为:L1 AND L2 L1 OR L2逻辑非为目运算符,所构成的逻辑表达式为:Not L,当一个表达式包含多种运算时,其运算的优先级由高到低排列为:算术运算 字符串运算 日期运算 关系运算 逻辑运算,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号