您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > vfp的数据类型和存储类型
第三章VFP的数据类型与存储类型VisualFoxPro6.0§3.1数据类型数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。VisualFoxPro系统将数据细化分为以下十三种类型。(1)字符型(Character)字符型(C型)数据可以包含任何可显示的ASCII码字符,包括字母、数字、汉字、符号、空格等,长度范围是0~254个字符,使用时必须用定界符单引号,双引号,方括号括起来。‘’、“”、[](2)数值型(Numeric)数值型(N型)是由数字(0~9)、小数点和正负号组成。最大长度为20位(包括+、-和小数点)。(3)整型(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)日期时间型数据是描述日期和时间的数据。其默认格式为{mm/dd/yyyyhh:mm:ss}。其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。(9)逻辑型(Logical)逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。(10)备注型(Memo)备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。备注型字段固定占4个字节,用来存储一个指向备注文件(.FPT)的指针,实际数据长度仅受限于现有的磁盘空间。(11)通用型(General)通用型(G型)用于存储OLE对象,可以是电子表格、文档、图片等。仅适用于表中的字段,固定占4个字节,实际数据长度仅受限于现有的磁盘空间。(12)字符型(二进制)与字符类相似,但若代码页(不同语系代码)改变时,其值并不会随之改变,即VFP不会自动转换成相应国家的语系。(13)备注型(二进制)与字符型(二进制)一样,当代码页改变时,其值不会随之改变。§3.2数据存储类型(常量、变量)3.2.1常量在数据处理过程中其值不发生变化的量叫常量。1.数值型(N型)数值型常量是由数字0—9、小数点、正负号和E(科学计数法)组成的数值。如整数:100,-35小数:2.54358科学计数法如:1.2E+5表示1.2乘以10的5次方。0.3926E1,2.7E022.字符型(C型)字符型常量是由“”、‘’、[]括起来的字符或字符串。例如,“ABCD”、’No_4’、[北京]、“I’mastudent”等。注意:引号和括号必须是英文字符3.逻辑型(L型)只有逻辑“真”值和逻辑“假”值两个值,真:.T.、.t.、.Y.、.y.假:.F.、.f.、.N.、.n.4.货币型(Y型)货币型常数是以“$”作为前缀的数值,如$986.35、$1234.5678。保留四位小数如:$231.12345,实际在计算机里存放的是:$231.12355.日期型(D型)日期常量是用{}括起来的日期形式的常量。如{10/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/928:45}严格的日期时间格式为:{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}或{^yyyy/mm/dd[hh[:mm[:ss]][a|p]]}如{^2000-09-208:45}2.3.2变量在命令操作和程序运行过程中其值允许变化的量称为变量。一、内存变量定义内存变量时应取名并赋初值,变量建立后存储于内存中,并可以改变其值,直到清除该变量。内存变量的命名规则:变量名可以由字母、数字、下划线和汉字组成,但第一个字符不可以是数字,至多128个字符,不可与系统保留字同名。内存变量的定义和赋值在内存变量赋值同时,也定义了内存变量及数据类型。[格式1]STORE表达式TO内存变量表[格式2]内存变量=表达式例:NAME=李华STORE5*4TOA,B,C?NAME?A?NAME??'同志'?'NAME=',NAME结果:李华20李华同志NAME=李华二、数组变量数组:按一定顺序排列的一组内存变量。“先定义后使用如定义:DIMENSION|DECLAREa(2,3),b(4)赋值:a=4,b(1)=“foxpro”a(2,1)=3等价a(4)=3三、字段变量表的各个字段都是字段变量use学生表?学号go5?姓名内存变量和字段变量同名时:字段变量优先,若要显示内存变量,用?m.编号或?m-编号四、记录记录是表中的一行字段的集合。五、对象对象是构成程序的基本单位和运行实体。§3.3函数函数是系统内部预先编制好的一组程序,分别实现某些特定的运算或操作。函数的一般调用形式:函数名([参数1,参数2,……])其中函数名是系统规定的,参数可以是一个或多个,也可为空,即:函数名(),但圆括号不能省略。VFP提供了200余种函数,常用函数P50表2.7~表2.11。按功能可划分为:数学函数、字符串函数、日期和时间函数、类型转换函数、测试函数。1、数学函数(数值函数)(1)求绝对函数ABS格式:ABS(〈数值表达式〉)?ABS(-4)结果为4(2)求整函数INT格式:INT(〈数值表达式〉)?INT(4.8)结果为4(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格式:MAX|MIN(〈表达式1〉,〈表达式2〉)功能:求〈表达式1〉和〈表达式2〉中的大者、小者。2、字符串函数(1)判子字符串位置AT格式:AT(〈字符表达式1〉,〈字符表达式2〉,〈数值表达式〉)功能:求〈字符表达式1〉在〈字符表达式2〉中第〈数值表达式〉次出现的起始位置。〈数值表达式〉默认值为1。说明:①若〈字符表达式2〉中不包含〈字符表达式1〉,则函数值为零;②大小写字母在检索中视为不同。?AT(OK,COMPUTEROKOK,2)→12?AT(数据,计算机数据管理系统)→7?AT(BOOK,COMPUTER)→0(2)求子串函数SUBSTR格式:SUBSTR〈字符表达式〉,〈起始位置〉[,〈长度〉]功能:对〈字符表达式〉从给定的〈起始位置〉开始截取指定长度的字符,生成一个新的字符串;?SUBSTR(110102490217041,7,6)→490217(3)取左、右子串函数格式:LEFT|RIGHT(〈字符表达式〉,〈数值表达式〉)功能:LEFT从〈字符表达式〉左边截取由〈数值表达式〉的值指定的字符,生成一个新的字符串;RIGHT从〈字符表达式〉右边截取由〈数值表达式〉的值指定的字符,生成一个新的字符串;?LEFT('FOXPRO数据库管理系统',6)→FOXPRO?RIGHT('FOXPRO数据库管理系统',14)→数据库管理系统(4)ALLTRIM删除首部和尾部空格格式:ALLTRIM(〈字符表达式〉)功能:ALLTRIM删除字符串首部和尾部的空格?ALLTRIM(“man”)→man(5)构造空格函数SPACE格式:SPACE(〈数值表达式〉)功能:产生由〈数值表达式〉的值决定的空格数。?“姓名”+SPACE(3)+“李宁”→姓名李宁(6)字符串长度函数LEN格式:LEN(〈字符表达式〉)功能:测定字符串的长度(字符个数)。?LEN('FOXPRO数据库管理系统')→20(7)大小写字母转换函数LOWER|UPPER格式:(〈字符表达式〉)功能:LOWER把〈字符表达式〉中的大写字母转换为小写字母;UPPER把〈字符表达式〉中的小写字母转换为大写字母。?LOWER([FoxPro])→foxpro?UPPER([FoxPro])→FOXPRO、日期和时间函数(1)系统日期函数DATE格式:DATE()?DATE()→99/11/15(2)系统时间函数TIME格式:TIME()?TIME()→08:50:43(3)年、月、日函数YEAR|MONTH|DAY格式:YEAR|MONTH|DAY(〈日期表达式〉)功能:从〈日期表达式〉中求出年份、月份、日份的数值。?DATE()→99/11/15?YEAR(DATE())→1999?MONTH(DATE())→11?DAY(DATE())→15、类型转换函数(1)字符转换为数值函数VAL格式:VAL(〈字符表达式〉)功能:将字符型数据转换为数值型数据。说明:①若字符表达式由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余小数四舍五入。②若字符表达式由非数字字符打头,则转换为0.00。③若字符表达式由数字字符打头,且混有非数字字符时,则转换到第一个非数字字符。?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/d
本文标题:vfp的数据类型和存储类型
链接地址:https://www.777doc.com/doc-3840043 .html