vfp的数据类型和存储类型.ppt

上传人:牧羊曲112 文档编号:5452132 上传时间:2023-07-08 格式:PPT 页数:37 大小:219.99KB
返回 下载 相关 举报
vfp的数据类型和存储类型.ppt_第1页
第1页 / 共37页
vfp的数据类型和存储类型.ppt_第2页
第2页 / 共37页
vfp的数据类型和存储类型.ppt_第3页
第3页 / 共37页
vfp的数据类型和存储类型.ppt_第4页
第4页 / 共37页
vfp的数据类型和存储类型.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《vfp的数据类型和存储类型.ppt》由会员分享,可在线阅读,更多相关《vfp的数据类型和存储类型.ppt(37页珍藏版)》请在三一办公上搜索。

1、第三章 VFP的数据类型与存储类型,Visual FoxPro 6.0,3.1 数据类型 数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。Visual FoxPro系统将数据细化分为以下十三种类型。(1)字符型(Character)字符型(C型)数据可以包含任何可显示的ASCII码字符,包括字母、数字、汉字、符号、空格等,长度范围是0254个字符,使用时必须用定界符单引号,双引号,方括号括起来。、“”、,(2)数值型(Numeric)数值型(N型)是由数字(09)、小数点和正负号组成。最大长度为20位(包括、和小数点)。(3)

2、整型(Integer)整型(N型)表示整数,仅用于字段变量,数据占4个字节。(4)浮点型(Float)浮点型(N型)与数值型等价,为与其它软件的兼容而设。(5)双精度型(Double)双精度型(N型)是更高精度的数值型数据,只用于字段变量,固定占用8个字节,并采用固定长度浮点格式存储。,(6)货币型(Currency)货币型(Y型)用来表示货币值,系统默认的货币符号是“$”。(7)日期型(Data)日期型(D型)用于表示日期,用默认格式mm/dd/yyyy来表示,长度固定为8位,yyyy表示年,占4字节,mm表示月,占2字节,dd表示日,占2字节。(8)日期时间型(DataTime)日期时间型

3、数据是描述日期和时间的数据。其默认格式为mm/dd/yyyy hh:mm:ss。其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。(9)逻辑型(Logical)逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。,(10)备注型(Memo)备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。备注型字段固定占4个字节,用来存储一个指向备注文件(.FPT)的指针,实际数据长度仅受限于现有的磁盘空间。(11)通用型(Ge

4、neral)通用型(G型)用于存储OLE对象,可以是电子表格、文档、图片等。仅适用于表中的字段,固定占4个字节,实际数据长度仅受限于现有的磁盘空间。(12)字符型(二进制)与字符类相似,但若代码页(不同语系代码)改变时,其值并不会随之改变,即VFP不会自动转换成相应国家的语系。(13)备注型(二进制)与字符型(二进制)一样,当代码页改变时,其值不会随之改变。,3.2 数据存储类型(常量、变 量)常量 在数据处理过程中其值不发生变化的量叫常量。1.数值型(N型)数值型常量是由数字09、小数点、正负号和 E(科学计数法)组成的数值。如 整数:100,-35 小数:2.54358 科学计数法 如:1

5、.2E+5 表示 1.2乘以10的5次方。0.3926E1,2.7E02,2.字符型(C型)字符型常量是由“”、括起来的字符或字符串。例如,“ABCD”、No_4、北京、“Im a student”等。注意:引号和括号必须是英文字符 3.逻辑型(L型)只有逻辑“真”值和逻辑“假”值两个值,真:.T.、.t.、.Y.、.y.假:.F.、.f.、.N.、.n.4.货币型(Y型)货币型常数是以“$”作为前缀的数值,如$986.35、$1234.5678。保留四位小数如:$231.12345,实际在计算机里存放的是:$231.1235,5.日期型(D型)日期常量是用 括起来的日期形式的常量。如 10/

6、01/1992,10/01/92,10-01-92。严格的日期格式YMD(VFP默认)yyyy-mm-dd或yyyy/mm/dd。如 2000-09-20,2000/10/01。6.日期时间型(T型)日期时间型常量也用 括起来表示,如 10/01/92 8:45严格的日期时间格式为:yyyy-mm-dd hh:mm:ssa|p 或 yyyy/mm/dd hh:mm:ssa|p 如 2000-09-20 8:45,变 量 在命令操作和程序运行过程中其值允许变化的量称为变量。,一、内存变量 定义内存变量时应取名并赋初值,变量建立后存储于内存中,并可以改变其值,直到清除该变量。,内存变量的命名规则:

7、变量名可以由字母、数字、下划线和汉字组成,但第一个字符不可以是数字,至多128个字符,不可与系统保留字同名。内存变量的定义和赋值 在内存变量赋值同时,也定义了内存变量及数据类型。格式1 STORE TO 格式2=,例:NAME=李华STORE 5*4 TO A,B,C?NAME?A?NAME?同志?NAME=,NAME,结果:李华20李华同志NAME=李华,二、数组变量数组:按一定顺序排列的一组内存变量。“先定义后使用如定义:DIMENSION|DECLARE a(2,3),b(4)赋值:a=4,b(1)=“foxpro”a(2,1)=3等价a(4)=3,三、字段变量表的各个字段都是字段变量u

8、se 学生表?学号go 5?姓名内存变量和字段变量同名时:字段变量优先,若要显示内存变量,用?m.编号或?m-编号,四、记录记录是表中的一行字段的集合。五、对象对象是构成程序的基本单位和运行实体。3.3函 数函数是系统内部预先编制好的一组程序,分别实现某些特定的运算或操作。函数的一般调用形式:(,)其中函数名是系统规定的,参数可以是一个或多个,也可为空,即:函数名(),但圆括号不能省略。VFP提供了200余种函数,常用函数 P50表2.7表2.11。按功能可划分为:数学函数、字符串函数、日期和时间函数、类型转换函数、测试函数。,1、数学函数(数值函数)(1)求绝对函数ABS格式:ABS(数值表

9、达式)?ABS(-4)结果为(2)求整函数INT格式:INT(数值表达式)?INT(4.8)结果为(3)四舍五入函数ROUND格式:ROUND(数值表达式,保留小数位)功能:按保留小数位指定的位数对数值表达式的数值进行四舍五入。?ROUND(3.14159,3)3.142?ROUND(3.14159,0)3,(4)指数函数EXP、平方根函数SQRT、格式:EXP|SQRT(数值表达式)?EXP(2)7.39?SQRT(9)3(5)取模(求余数)函数MOD格式:MOD(数值表达式1,数值表达式2)功能:取数值表达式1除以数值表达式2的余数。?MOD(20,3)2(6)求最大值MAX、最小值MIN

10、格式:MAX|MIN(表达式1,表达式2)功能:求表达式1和表达式2中的大者、小者。,2、字符串函数(1)判子字符串位置AT格式:AT(字符表达式1,字符表达式2,数值表达式)功能:求字符表达式1在字符表达式2中第数值表达式次出现的起始位置。数值表达式 默认值为 1。说明:若字符表达式2中不包含字符表达式1,则函数值为零;大小写字母在检索中视为不同。?AT(OK,COMPUTER OKOK,2)12?AT(数据,计算机数据管理系统)7?AT(BOOK,COMPUTER)0,(2)求子串函数SUBSTR格式:SUBSTR字符表达式,起始位置,长度功能:对字符表达式从给定的起始位置开始截取指定长度

11、的字符,生成一个新的字符串;?(3)取左、右子串函数格式:LEFT|RIGHT(字符表达式,数值表达式)功能:LEFT 从字符表达式左边截取由数值表达式的值指定的字符,生成一个新的字符串;RIGHT 从字符表达式右边截取由数值表达式的值指定的字符,生成一个新的字符串;?LEFT(FOXPRO数据库管理系统,6)FOXPRO?RIGHT(FOXPRO数据库管理系统,14)数据库管理系统,(4)ALLTRIM删除首部和尾部空格格式:ALLTRIM(字符表达式)功能:ALLTRIM删除字符串首部和尾部的空格?ALLTRIM(“man”)man(5)构造空格函数SPACE格式:SPACE(数值表达式)

12、功能:产生由数值表达式的值决定的空格数。?“姓名”+SPACE(3)+“李宁”姓名 李宁(6)字符串长度函数LEN格式:LEN(字符表达式)功能:测定字符串的长度(字符个数)。?LEN(FOXPRO数据库管理系统)20,(7)大小写字母转换函数LOWER|UPPER格式:(字符表达式)功能:LOWER把字符表达式中的大写字母转换为小写字母;UPPER把字符表达式中的小写字母转换为大写字母。?LOWER(FoxPro)foxpro?UPPER(FoxPro)FOXPRO,3、日期和时间函数(1)系统日期函数DATE格式:DATE()?DATE()99/11/15(2)系统时间函数TIME格式:T

13、IME()?TIME()08:50:43(3)年、月、日函数YEAR|MONTH|DAY格式:YEAR|MONTH|DAY(日期表达式)功能:从日期表达式中求出年份、月份、日份的数值。?DATE()99/11/15?YEAR(DATE()1999?MONTH(DATE()11?DAY(DATE()15,4、类型转换函数(1)字符转换为数值函数VAL格式:VAL(字符表达式)功能:将字符型数据转换为数值型数据。说明:若由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余小数四舍五入。若由非数字字符打头,则转换为0.00。若由数字字符打头,且混有非数字字符时,则转换到第一个非数字字符

14、。?VAL(1234.5678)1234.57?VAL(FoxPro)0.00?VAL(1234FOX.5678)1234.00,(2)数值转换为字符函数STR格式:STR(数值表达式,长度,小数位数)功能:把数值表达式的运算结果转换为指定长度的字符串。?STR(1234.5678,7,2)1234.57(3)字符转换为日期函数CTOD格式:CTOD(字符表达式)功能:将符合yy/mm/dd、mm/dd/yy日期格式的字符串转换为相应日期。?CTOD(99/11/15)99/11/15(4)日期转换为字符函数DTOC格式:DTOC(日期表达式)功能:将转换为相应的字符串。说明:按mm/dd/y

15、y格式转换;?DTOC(DATE()99/11/15,(5)ASCII码值转换为字符函数CHR格式:CHR(数值表达式)功能:将所表示的ASCII码值转换为相应的字符。?CHR(65),CHR(97),CHR(48)A a 0(6)字符转换成ASCII码值函数ASC格式:ASC(字符表达式)功能:返回最左边的一个字符的ASCII码值。?ASC(A),ASC(a),ASC(0)65 97 48,5、测试函数(1)记录号测试函数 RECNO格式:RECNO(数值型表达式)功能:给出指定的工作区中打开的数据库的当前记录号。(2)文件起始测试函数 BOF格式:BOF(数值型表达式)功能:测试指定的工作

16、区中库文件记录指针是否指向起始位置。是函数值为逻辑真(.T.),否则为假(.F.)。(3)文件结束测试函数 EOF格式:EOF(数值型表达式)功能:测试指定工作区中库文件记录指针是否指向结束位置。是函数值为逻辑真(.T.),否则函数值为假(.F.)。,(4)文件测试函数 FILE格式:FILE(文件名)功能:测试指定的磁盘文件是否存在,若存在,函数值为逻辑真(.T.),否则函数值为假(.F.)。(5)记录测试函数 RECOUNT格式:RECOUNT(数值型表达式)功能:测试指定的工作区中数据库的记录个数。(6)数据类型测试函数 TYPE TYPE(“字符表达式”)返回表达式类型,如 N,C,D

17、,L等?TYPE(date()?TYPE(“字符表达式”)?TYPE(.t.),(7)检索测试函数 FOUND与LOCATE,SEEK,FIND,CONTINUE等同用,查到返回.T.,否则.F.(8)库文件名测试函数 DBF 返回当前工作区打开的表名,3.4 表达式 常量、变量、函数通过运算符连接起来构成表达式。VFP中的表达式有算术表达式、字符表达式、日期表达式、关系表达式、逻辑表达式。1.算术表达式:由常量、变量、函数和算术运算符构成。运算符号:()括号*或 乘方,例:3*2 或 32*、/乘、除%取模(余数),例:15%4 结果是3+、-加、减(单目运算为“+”、“-”号)优先次序同数

18、学相同如一元二次方程的一个根:(-b+sqrt(b*2-4*a*c)/(2*a),2.字符表达式:由常量、变量、函数和字符算术运算符构成。字符运算符有两个:完全链接(+)和去空链接(-)+:将几个字符串连接成一个新字符串。例:?ABCD+EFGH+1234 结果为:”ABCDEFGH 1234”-:将第一个字符串尾部空格移到后面一个字符串末尾后,连接成一个新字符串。例:?莆田 学院+会计系 结果为:“莆田学院会计系”?莆田-学院-机电系+通信专业,3.日期表达式:日期及时间运算符有“+”和“-”日期及日期时间型表达式的运算有三种情况:(1)两个日期(时间)型数据相减,表示两个日期相差天数。例:

19、?2000-10-01-2000-09-01 结果为30,表示两个日期相距30天。(2)一个日期(时间)型数据加一个表示天数的数值型数据,结果是一个向后推算的日期(时间)型数据。例:?2000-09-01+60 结果为2000-10-31?2000-09-01 17:34+60结果为2000-09-01 17:35(3)一个日期(时间)型数据减一个表示天数的数值型数据,结果是一个向前推算的日期(时间)型数据。例:?2000-09-01 30 结果为2000-08-02,4.关系表达式:关系表达式对同一类型的数据进行比较运算,比较的结果符合逻辑,其值为.T.;否则为.F.。关系运算符为:=、=、

20、或#、=、$等于 小于 大于 小于等于 大于等于 不等于 全等于 子字符串比较 运算规则 数值型数据按数值的大小比较 字符型数据按字符从左到右比较 日期型数据按年、月、日顺序比较 使用“=”比较字符串时,系统默认为非精确比较,即当“=”左边的字符串与右边的字符串的前半部分或全部相当时,系统均认为相等,即.T.。如:?ABCDE=ABC.T.可以使用SET EXACT ON|OFF命令设置精确比较或非精确比较。,例:?2+3=6.F.?C1C2.T.?ABC=ABCDE.F.?CD$ABCDEF.T.?BD$ABCDEF.F.SET EXACT OFF(非精确比较)?ABCDE=ABC.T.?A

21、BC=ABCDE.F.SET EXACT ON(精确比较)?ABCDE=ABC.F.?ABC=ABCDE.F.,5.逻辑表达式:两个或两个以上的关系表达式,及逻辑型常量、变量、函数,之间用逻辑运算符连接起来,构成逻辑表达式。运算符:.NOT.AND.OR.圆点 可以省略。运算规则:逻辑非(.NOT.):对(.NOT.)右边的L型数据求反;逻辑与(.AND.):当.AND.两边为真时,结果才为真(.T.);逻辑或(.OR.):当.OR.两边至少一个为真时,结果为(.T.)。优先次序:逻辑非逻辑与逻辑或运算结果:.T.或.F.6.运算的优先顺序:课本P49 表3-8 算术运算关系运算逻辑运算()括

22、号最优先,习题参考答案:B1、已知每年的圣诞节日期为12月25日,那么2002年圣诞节与元旦(1月1日)相差的天数是()。A)356 B)358 C)360 D)362参考答案:C2、要从数值型数据123中取出数值23,如果限制函数嵌套,则最适合采用的函数是()。A)int()B)round()C)mod()D)exp()参考答案:B3、substr(“123456789”,len(“fox”),len(“pro”)的计算结果是()。A)123 B)345 C)567 D)789,参考答案:A4、在下列函数中,函数值为数值的是()。A)at(fox,visual foxpro)B)ctod(0

23、1/01/96)bof()D)substr(dtoc(date(),7)参考答案:B5、若rsk.dbf有20条记录,执行下列命令序列后,显示结果为()。use rskskip 2goto 6skip 2?recno()A)6 B)4 C)8 D)2,参考答案:B6、表达式val(a2)*len(foxpro)的值是()。A)a2*foxpro B)0 C)a2foxpro D)12参考答案:D7、下列字符串的运算结果为.f.的表达式为()。A)fort$comfortable B)computer=comp C)former=former D)computer=comp参考答案:D8、顺序执

24、行以下赋值命令后,下列表达式中,合法的表达式是()。x=12 y=2*3 z=left(foxpro,3)A)x+y B)y+z C)x-z+y D)x-x+z-z,参考答案:A9、已知变量a的值为.t.,变量b和c的值均为.f.,则下列表达式值为.f.的选项为()。A)b and c or not a B)a or b and not cC)not c and a or b D)a and b or not c参考答案:C10、在下列表达式中,错误的表达式是()。A)2000-06-01-10 B)2000-06-01-date()C)2000-06-01+date()D)2000-06-01+10,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号