VFPVisualFoxPro数据类型与数据运算.ppt_第1页
VFPVisualFoxPro数据类型与数据运算.ppt_第2页
VFPVisualFoxPro数据类型与数据运算.ppt_第3页
VFPVisualFoxPro数据类型与数据运算.ppt_第4页
VFPVisualFoxPro数据类型与数据运算.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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表示) 构成:数字、小数点、+、-(正负号) 特点:可以运算 范围: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逻辑型(Logic,用字母L表示) 描述客观事物真假的数据,用于表示逻辑判断结果。 构成:真(.T.)、假(.F.) 特点:可以运算(进行逻辑判断) 范围:1字节,6货币型(Currency,用字母Y表示) 数据是为存储货币值而使用的一种数据类型。它默认保留4位小数,占据8字节存储空间。 7备注型(Memo,用字母M表示)用于描述较长的描述性内容 构成:跟字符相同,做为字符型的补充 范围:取决磁盘空间 注:它只用于表中字段类型的定义,字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.fpt)中,长度根据数据的内容而定。 8通用型(General,用字母G表示) 通用型数据中的OLE对象可以是电子表格、文档、图形、声音等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据长度仅受限于磁盘空间。 9.二进制字符型和二进制备注型 这两类数据是以二进制格式存储的数据类型,只是用在表中字段数据的定义。所存储的数据不受代码页改变的影响,在一般的数据库表和自由表中较少使用。 注意:在一个表中如果设置了多个备注型字段和多个通用型字段,在表中备注文件仅仅有一个文件。,1字符型常量 用定界符(单引号、双引号或中括号)括起来的一串字符,也称字符串。定界符必须匹配。,3.2 Visual FoxPro的常量,常量是在程序的运行过程中其值不变化的量。主要有以下形式:,例如: Central South University、“410075“、教授 例如:中国的花朵、”中国人民财产”,如果某一定界符也是字符串内容的一部分,则需要用另外一种定界符为该字符串的定界符。,注意:不包含任何字符的字符串(“”)叫空串,它与包含空格的(“ ”)字符串不同。,2数值型常量,数值型常量就是平时所讲的数值,如123.345,由数字、小数点和正负号组成。 数值型常量有两种表示方法:小数形式和指数形式,例如:75、-3.75是小数形式 0.6947E-6、4.9523E9分别表示 0.694710-6、4.9523109 是指数形式。E左边为数字部分,称为尾数,右边为指数部分,称为阶码。阶码只能是整数,尾数可以是整数,也可以是小数。尾数与阶码均可正可负。,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表示年份用4位表示;OFF(默认值)表示年份用2位表示; nCentury 是一个199的整数,代表世纪数。 例3.1: set cent on a=2009-8-7 ?a &显示的值为08/07/2009 set cent off ?a &显示的值为08/07/09 set 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-7 set date to ansi ?a &显示显示的值为09.08.07 set date to mdy ?a &显示显示的值为08/07/09,(3)设置日期分隔符,命令格式:SET MARK TO 日期分隔符 命令功能:设置显示日期时使用的分隔符,如/、-、.等。 例3.3: a=2009-8-7 set mark to “/“ ?a &显示显示的值为08/07/09,5逻辑型常量,逻辑型常量用来表示逻辑真假的常量。只有“真”和“假”两种值。逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。逻辑型数据只占用一个字节。,6货币型常量,货币型常量的书写格式与数值型常量类似,但要加上一个前置的$。例如,$3.1416。货币型常量不能采用指数形式。,3.3 Visual FoxPro的变量,变量是在程序的运行过程中其值变化的量。变量分为字段变量、内存变量、数组变量、系统变量和对象,变量的3个要素:变量名、数据类型和变量值。,3.3.1命名规则,使用字母、汉字、下划线和数字组成。 命名以字母或下划线开头。 为避免误解、混淆,避免使用Visual FoxPro的保留字。 字母不区分大小写。,3.3.2字段变量,字段变量就是表中的字段名,它是表中最基本的数据单元。字段变量是一种多值变量,一个表有多少记录,该表的每一字段就有多少个值。,内存变量可以分为简单内存变量和数组两种。 内存变量是一种临时工作单元。类型有字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)等六种类型。 内存变量名与字段变量同名时,则应该用如下格式进行访问: M.内存变量名 M-内存变量名,3.3.3内存变量,(1)内存变量的赋值,格式1:= 功能1:将的值赋于由所指定的内存变量。 格式2:STORE TO 功能2:将的值赋于由所指定的一个或多个内存变量。,(2)内存变量的显示,格式: DISPLAY|LIST MEMORY LIKE TO PRINTER TO FILE 功能:显示当前已定义的内存变量的有关信息,包括变量名、作用域、类型和取值。 LIKE选项表示显示与通配符相匹配的内存变量,在中允许使用符号?和*,分别代表单个字符和多个字符。 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是清除所有的内存变量,格式2是清除指定的内存变量 。,(3)内存变量文件的建立,格式:SAVE TO ALL LIKE|EXCEPT 功能:将所定义的内存变量的各种信息全都保存到一个文件中 ,其默认 的扩展名为.mem。,(4)内存变量的恢复,格式:RESTORE FROM ADDITIVE 功能:将已存入内存变量文件中的内存变量从文件中读出,装入内存中。 注:若命令中含有ADDITIVE任选项,系统不清除内存中现有的内存变量,并追加文件中的内存变量。,(5)内存变量的清除,例:A1=234 A2=”234” A3=.F. A4=2007-08-19 DISPLAY MEMORY LIKE A? SAVE TO AA ALL LIKE A? RELEASE A1,A2,A4 DISPLAY MEMORY LIKE A? RESTORE FROM AA DISPLAY 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 MEMORY 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 数值函数,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),FLOOR(-X),6. 求余数函数 格式:MOD(,) 功能:求除以所得的余数。 例如:MOD(10,3), MOD(-10,-3), MOD(10,-3),MOD(-10,3), 1 -1 -2 2,例:输入任意一个三位数字,将它反向输出: X=123 X1=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相同,被除数与除数异号,函数值为所得余数再上除数,例: ? 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=”HI“ ?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 ?&a0+100,3. 求子串位置函数 格式:AT(,)、ATC(,) 功能:求在的起始位置。若不存在,则函数返回值为0。ATC函数在子串比较时不区分字母大小写。 例如:?AT(“345”,”123456”),AT(“5”,”12367”) ?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“+SPACE(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 ? STUFF(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( )给出当前的系统时间,形式为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),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(“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)+10 4. 将日期或日期时间转换成字符串函数 格式:DTOC()、 TTOC() 功能:DTOC( )将expd转换为字符型,TTOC( )将日期时间数据转换为字符型。,5. 将数值转换成字符串函数 格式:STR(,) 功能:将expn1的值转换成字符串。转换后字符串的长度由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.34 STORE “-123“ TO x STORE “45“ TO y STORE 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(“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. 查找是否成功测试函数 格式: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 FoxPro 的表达式,将常量、变量和函数用运算符连接起来的式子称为表达式,根据运算符的不同,分为数值表达式、字符表达式、日期表达式、关系表达式和逻辑表达式等。 3.5.1 数值表达式 用算术运算符将数值型数据连接起来的式子叫算术表达式。 算术运算符有(按优先级从高到低的顺序排列):( )(括号)、*或(乘方)、*(乘)、/(除)、%(求余数),+(加)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论