资源预览内容
第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
第9页 / 共61页
第10页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章第二章 数据与数据运算数据与数据运算本本 章章 要要 点点2.1 数据类型、常量和变量数据类型、常量和变量2.2 VFP的运算符和表达式的运算符和表达式2.3 Visual FoxPro的系统函数的系统函数1VFP中有常量、变量、表达式和函数中有常量、变量、表达式和函数4种类型数据。种类型数据。常量和变量是数据运算的基本对象,而表达式和函数常量和变量是数据运算的基本对象,而表达式和函数则体现了语言对数据进行运算和处理的能力及功能。则体现了语言对数据进行运算和处理的能力及功能。每种数据都包括每种数据都包括内容内容与数据与数据形式形式(即数据类型)两个(即数据类型)两个方面。数据类型决定了数据的存储方式和运算方法。方面。数据类型决定了数据的存储方式和运算方法。VFP数据类型:数据类型:8种,分别是:字符型、数值型、日种,分别是:字符型、数值型、日期型、日期时间型、逻辑型、备注型、通用型、货币期型、日期时间型、逻辑型、备注型、通用型、货币型。型。2.1 数据类型、常量和变量数据类型、常量和变量2 1.字符型(字符型(Character,C):不需要运算):不需要运算组成组成:中英文字符、数字和其他中英文字符、数字和其他ASCII字符字符长度长度:0-254个字符。每汉字算个字符。每汉字算2字符。字符。 如:如: “VFP程序设计程序设计” 650223 备注类型处理的字符数可以备注类型处理的字符数可以254。2.数值型:表示数量,可运算数值型:表示数量,可运算组成:组成:数字、小数点、正负号和表示乘幂的字母数字、小数点、正负号和表示乘幂的字母E或或e组成组成数值精度数值精度:254的数据,它没有长的数据,它没有长度限制,仅受限于磁盘空间(仅限于表字段定义)度限制,仅受限于磁盘空间(仅限于表字段定义)长度:长度:4字节(实际数据存于表的备注文件字节(实际数据存于表的备注文件.FPT中,中,长度随数据的内容而定)长度随数据的内容而定) 。57. 通用型(通用型(General,G)与备注型相似,用于存储电子表格、文档、图形与备注型相似,用于存储电子表格、文档、图形图片等信息,长度固定为图片等信息,长度固定为4位。位。8.货币型(货币型(Currency,Y)长度固定为长度固定为8字节,常用符号为字节,常用符号为“$”,默认保留,默认保留4位小数。位小数。9.9. 如:如:$123$123,$22.8125$22.8125 6 常常量量是是在在命命令令或或程程序序中中可可直直接接引引用用的的数数据据项项,其其特特征征是是在在整整个个操操作作过过程程中中它它的的值值和和表表现现形形式式保保持持不不变变。VFP中中常常量量分分为为6种种类类型型:数数值值型型N、字字符符型型C、逻逻辑辑型型L、日期型、日期型D、日期时间型、日期时间型T和货币型和货币型Y。 1数值型常量:数值型常量:如如100,-15.31,1.3E+9等。等。2字符型常量字符型常量用成对用成对“ ” ”、“ ”或或“ ” 括起来的字符串。括起来的字符串。如如“ student”,国家国家,VFP系统系统若串中要包含若串中要包含“ ” ”、 “ ”或或 “ ”字符,字符,则换用另一种定界符,如则换用另一种定界符,如“ I m a student.”。3逻辑型常量:逻辑型常量:.t. 、 .T.或或.y. 、.Y.,.f. 、.F.或或.n. 、.N.2.1.2 常量常量74日期型和日期时间型常量日期型和日期时间型常量空日期:空日期: 或或 / 。空日期时间值:。空日期时间值: / : 默认格式默认格式mm/dd/yyyy 如如02/26/0602/26/06和和02/26/200602/26/2006 mm/dd/yyyy, hh:mm:ssa|p 最好使用最好使用“严格的日期格式严格的日期格式” :yyyy-mm-dd , hh:mm:ssa|p ,其中其中表明该日期格式是严格的,并按照表明该日期格式是严格的,并按照YMD的格式来表示。的格式来表示。其中的其中的-号可用号可用正斜杠正斜杠“/”、句点、句点“.” 或空格或空格代替,如代替,如2004/08/15、2004.08.15、2004 08 15。5.货币型常量货币型常量货币型常量以货币型常量以$符号开头,并四舍五入到小数第符号开头,并四舍五入到小数第4位。位。例如例如$1,234.567891的计算结果为的计算结果为$1,234.5679。 8变变量量:在在操操作作过过程程中中数数据据类类型型和和值值都都可可以以改改变变的的数数据项。据项。变变量量三三要要素素:变变量量名名、数数据据类类型型和和变变量量值值。变变量量种种类类:字字段段变变量量、内内存存变变量量、数数组组和和系系统统变变量量4类类。2.1.3 变量变量值(内容)变量名数据类型91变量的命名规则变量的命名规则1)组成字符:字母、汉字、下划线和数字组成字符:字母、汉字、下划线和数字2)首字符不能是数字。也不用下划线首字符不能是数字。也不用下划线3)长长度度=128个个字字符符(除除自自由由表表字字段段名名、索索引引的的TAG标标识识名名最多只能最多只能10个字符外)个字符外)4)避免完整地使用避免完整地使用VFP的保留字。的保留字。5)字母不区分大小写。字母不区分大小写。除除遵遵守守以以上上规规则则外外,为为提提高高程程序序的的可可读读性性和和规规范范性性,应应尽尽量量做做到到见见名名知知义义。如如人人口口变变量量为为Population,年龄变量为年龄变量为Age等等。等等。 102字段变量字段变量字段变量是数据表中定义的变量,属于永久性变量。其字段字段变量是数据表中定义的变量,属于永久性变量。其字段名就是变量名,字段值就是变量值(表中字段名下数据项)。名就是变量名,字段值就是变量值(表中字段名下数据项)。变量的数据类型为变量的数据类型为VFP中任意数据类型,如中任意数据类型,如C、Y、N、F、D、T、B、I、L、M、G等类型。字段变量是一种多值变量,其等类型。字段变量是一种多值变量,其值为当前记录中该字段的值。值为当前记录中该字段的值。 3.内存变量内存变量内存变量是一般意义下的简单变量。有数值型内存变量是一般意义下的简单变量。有数值型N、字符型、字符型C、逻辑型逻辑型L、日期型、日期型D和日期时间型和日期时间型T,但没有备注型但没有备注型M、通用、通用型型G、整型、整型I、浮点型、浮点型F、双精度型、双精度型B等类型的内存变量。等类型的内存变量。11内存变量的内存变量的两种定义方式:两种定义方式:STORE TO 格式一命令动词去向子句包含值的表达式接收值的变量名表STORE0TOAA,BB,CC将数值0赋给变量AA,BB,CCSTORE李磊TONAME将字符串“李磊”赋给NAME例格式二= 接收值的变量名赋值操作符包含值的表达式例A=.T.将逻辑真值赋给变量A124系统变量系统变量系统变量是系统变量是VFP用以设置和保存有关系统的状态、特用以设置和保存有关系统的状态、特性等参数的一类内存变量,它们由性等参数的一类内存变量,它们由VFP系统定义和维系统定义和维护。护。它们都以下划线它们都以下划线“_”开头,因此在定义内存变量和数开头,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名组变量名时,不要以下划线开始,以免与系统变量名冲突。冲突。了解、熟悉并且充分地运用系统变量,会给数据库了解、熟悉并且充分地运用系统变量,会给数据库系统的操作、管理带来很多方便,在开发应用程序时系统的操作、管理带来很多方便,在开发应用程序时更是如此。更是如此。135数数组组(结结构构变变量量):是是具具有有相相同同的的名名称称但但下下标标不不同同的的一一组组有有序序的的内内存存变变量量。其其中中的的每每一一个个变变量量都都称称为为数数组组的的元元素。素。VFP只用一、二维数组只用一、二维数组S1下标变量变量名下标S(1)数组数组名数组元素序号14(1)数组的定义)数组的定义数数组组必必须须先先定定义义才才能能使使用用。定定义义数数组组就就是是向向系系统统申申请请数组元素在内存中的存储空间。数组元素在内存中的存储空间。定义格式为:定义格式为: DIMENSION | DECLARE (,),(,)如如 DIMENSION x(3) , y( 2 , 2 ) 定定义义了了两两个个数数组组,一一个个叫叫x,有有3个个元元素素,分分别别是是x(1)、x(2)、x(3);另另一一个个叫叫y,有有22共共4个个元元素素,分分别别是是y(1 , 1)、y( 1 , 2 )、y( 2 , 1 ) 和和y( 2 , 2 ),可可以以存存放放2行行2列的行列式或矩阵。列的行列式或矩阵。15(2)数组的赋值与引用)数组的赋值与引用数组的赋值与引用遵循内存变量的规则。数组的赋值与引用遵循内存变量的规则。此外,还要此外,还要注意以下几点:注意以下几点:1)在定义数组时,系统自动将各元素的初值赋为在定义数组时,系统自动将各元素的初值赋为.F.。数组元素的数据类型也可在赋值的过程中不断数组元素的数据类型也可在赋值的过程中不断改变,同一数组中不同元素存放的数据类型可以改变,同一数组中不同元素存放的数据类型可以不同。不同。2)除了可像普通内存变量一样单个地给数组各元素)除了可像普通内存变量一样单个地给数组各元素赋值外,也可以用赋值外,也可以用“”号和号和STORE命令将同命令将同一个值同时赋给整个数组的每一个元素。如:一个值同时赋给整个数组的每一个元素。如:DIMENSION x(3)x(1) = 123x(2) = abc ? x(1), x(2) , x(3) &结果为:结果为: 123 abc .F.16显示输出:?、?、显示输出:?、?、DISPLAY/LIST内存变量的保存内存变量的保存:SAVE TO内存变量的恢复内存变量的恢复:RESTORE FROM内存变量的清除:内存变量的清除:RELEASE2.1.4 内存变量常用命令内存变量常用命令17说明:说明:选选用用LIKE 子子句句可可只只与与通通配配符符匹匹配配的的变变量量的的相相关关信信息息,通通配配符有符有*和?两种,?代表单个字符,和?两种,?代表单个字符,* 代表一个或多个字符。代表一个或多个字符。选选用用TO PRINTER子子句句可可将将屏屏幕幕显显示示内内容容输输出出到到打打印印机机,使使用用PROMPT则则弹弹出出要要否否打打印印的的提提示示窗窗口口。选选用用TO FILE子子句可将屏幕显示内容存入指定文本文件。句可将屏幕显示内容存入指定文本文件。用用逗逗号号分分隔隔的的多多个个表表达达式式,输输出时以空格分隔各表达式的值出时以空格分隔各表达式的值指指定定输输出出位位置置。多多个个表表达达式式必必须须用用多多个个AT子子句句分分别指定,可反序定位。别指定,可反序定位。先换行,再输出先换行,再输出不换行,直接输出不换行,直接输出变量的基本操作变量的基本操作1. 变量值的显示输出:?变量值的显示输出:? | ? AT 2. 显示变量状态信息:名字、作用范围、类型和值等信息。显示变量状态信息:名字、作用范围、类型和值等信息。格式:格式:DISPLAY | LIST MEMORY LIKE TO PRINTER PROMPT | TO FILE NOCONSOLE 1. 变量值的显示输出变量值的显示输出18除除字字段段外外,在在退退出出VFP或或关关机机后后变变量量就就不不再再存存在在;想想下下次次再再用用的的变变量量,需需要要保保存存在在文文件件中中(扩扩展展名名为为.MEM) 。保保存存符符合合通通配配符符条件的所有变量条件的所有变量保保存存除除符符合合通通配配符符条件外的所有变量条件外的所有变量格格式式:SAVE TO ALL LIKE | ALL EXCEPT 2. 变量的保存变量的保存19SAVE TO VAR1 将除系统内存变量以外所有内存变量保存到VAR1.MEM文件中。即:AA、BB、CC、NAME、A。SAVE TO VAR2 ALL LIKE ?A* 将第一个字符是任意字符,第二个字符是A的所有内存变量保存到VAR2.MEM文件中。即AA、NAME。SAVE TO VAR3 ALL EXCEPT ?A*将自定义内存变量中第二个字符不是A的所有内存变量保存到VAR2.MEM文件中。即BB、CC、A。SAVE命令示例命令示例20 3. 变量的恢复变量的恢复要使用保存在文件中的内存变量时,必须要使用保存在文件中的内存变量时,必须先恢复到内存中。先恢复到内存中。格式:格式:RESTORE FROM 21恢复内存变量示例恢复内存变量示例在命令窗口中继续执行下列命令RESTORE FROM VAR1LIST MEMORY LIKE * 屏幕显示在命令窗口中继续执行下列命令RESTORE FROM VAR2LIST MEMORY LIKE * 屏幕显示在命令窗口中继续执行下列命令RESTORE FROM VAR3 ADDITIVE LIST MEMORY LIKE * 屏幕显示224. 变量的清除变量的清除内存变量不用时应及时清理,减少内存的占用。内存变量不用时应及时清理,减少内存的占用。RELEASE | ALL LIKE | EXCEPT 如:如:RELEASE A, B &清除内存变量清除内存变量a,b RELEASE ALL&清除所有内存变量清除所有内存变量 RELEASE ALL LIKE A*&清除所有以字母清除所有以字母A开头的内存变量开头的内存变量 RELEASE ALL EXCEPT ?B* &清除除第二个字母为清除除第二个字母为B的所有内存变量。的所有内存变量。 23在命令窗口中执行下列命令RELEASE BB,CC LIST MEMORY LIKE * 屏幕显示在命令窗口中继续执行下列命令RELEASE ALL LIKE ?A*LIST MEMORY LIKE * 屏幕显示242.2 VFP的运算符和表达式的运算符和表达式 表达式组成:表达式组成:小括弧、常量、变量、函数、数组和运算符小括弧、常量、变量、函数、数组和运算符运算符(运算的类型),分为五类:运算符(运算的类型),分为五类:算术运算符、字符运算符、日期运算符、关系运算算术运算符、字符运算符、日期运算符、关系运算符和逻辑运算符。符和逻辑运算符。表表达达式式的的数数据据类类型型(最最终终计计算算结结果果值值的的类类型型)也也分分5类类:算算术术运运算算符符、字字符符运运算算符符、日日期期运运算算符符、关系运算符和逻辑运算符。关系运算符和逻辑运算符。25表表2-1 算术运算符算术运算符运算符运算符功能功能表达式举表达式举例例运算结运算结果果优先级优先级别别( )圆括号圆括号(2-5)*(3+2)-15最高最高|最低最低取相反数取相反数-(3-8)5*、乘幂乘幂2*5、32、-2*232、9、4*、/ 、% 乘、除、乘、除、取余数取余数2*10、25/520%5、21.5%520、50、1.5+、加、减加、减36+19、29-4755、-1826表表2-2字符运算符字符运算符+、- 运算的优先级别相同,但高于运算的优先级别相同,但高于 $ 的比较运的比较运算。算。 运算运算符符功能功能表达式举例表达式举例运算结果运算结果+ 串串1 + 串串2 :两串顺序相连两串顺序相连接接12 + 5612 56-串串1 - 串串2 :串串1尾空格移到尾空格移到串串2尾后再顺序相尾后再顺序相连接连接12 - 561256 $ 串串1 $ 串串2 :串串1是否为串是否为串2子串子串1234 $ a123451234 $ 34512.T.F.27日期运算符日期运算符+、- 和日期表达式和日期表达式日期表达式有日期表达式有2种形式:种形式:一个日期型或日期时间型数据一个日期型或日期时间型数据 +/- 一个数值型数一个数值型数据据作用:在日期作用:在日期/日期和时间数据上增加或减少一个日期和时间数据上增加或减少一个天数天数/秒数。秒数。两两个个日日期期型型或或日日期期时时间间型型数数据据用用“-”号号连连接接而而成成表表示示两两个个日日期期型型/日日期期时时间间型型数数据据之之间间相相隔隔的的天天数数/秒数。秒数。但但是是两两个个日日期期/日日期期和和时时间间型型数数据据不不能能进进行行“+”运运算。算。如:如: 2004-7-27 - 2004-7-26 1(天)(天)2004-7-27 + 42004-7-3128关系关系(比较比较)运算符和关系表达式运算符和关系表达式(逻辑型值逻辑型值)表表2-3 关系运算符关系运算符其中,西文字符按其中,西文字符按ASCII码比较;码比较;汉字默认按其汉语拼音音序比汉字默认按其汉语拼音音序比较,可设为按笔划数比较(工具较,可设为按笔划数比较(工具|选项选项|数据数据|排序序列排序序列|选择选择“Stroke”|确定)。确定)。 运算符运算符功能功能表达式举例表达式举例运算结果运算结果小于小于15大于大于A 1.T.=等于等于2+4 = 3*5.F.、#、!=不等于不等于5 -10.T.=小于或等于小于或等于abc =大于或等于大于或等于10-10-02=10/01/02.T.=字符串恒同字符串恒同abcabc= abc.F.29逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 30各类运算符的优先级各类运算符的优先级当表达式中含有多种运算时,必须按一定顺序处理。当表达式中含有多种运算时,必须按一定顺序处理。各类运算的优先顺序如下:各类运算的优先顺序如下:1.圆括号圆括号2.算术和日期运算算术和日期运算3.字符串运算字符串运算 4.关系运算关系运算5. 逻辑运算逻辑运算同类运算符的优先级别已经分别介绍。若优先级相同同类运算符的优先级别已经分别介绍。若优先级相同则从左到右,若有多层圆括号嵌套则先内后外。则从左到右,若有多层圆括号嵌套则先内后外。312.3 函数函数函数是用来进行一些特定的运算或操作的一函数是用来进行一些特定的运算或操作的一段程序代码,用来支持和完善命令的功能,段程序代码,用来支持和完善命令的功能,帮助用户完成各种操作与管理。帮助用户完成各种操作与管理。VFP提供了提供了几百个函数几百个函数供用户使用。供用户使用。函数的类型:函数的类型:数值型、字符型、逻辑型、日数值型、字符型、逻辑型、日期时间型和其它函数。期时间型和其它函数。函数组成:函数名、自变量(放于括弧中,函数组成:函数名、自变量(放于括弧中,也称参数)也称参数)用户自定义函数:由用户自己编写的函数用户自定义函数:由用户自己编写的函数32数值函数(一)数值函数(一)1绝对值:绝对值:ABS( ) 例:例:abs(34)的值是的值是 34 abs(-1.23)的值是的值是 1.23 abs(0)的值是的值是 02取整:取整:INT()自变量与函数为数值型自变量与函数为数值型例:int(-1.23)的值是-1int(45.2)的值是45333平方根:平方根:SQRT() 例如:?sqrt(1*2)1.414最大最大/小值:小值:MAX/MIN( )例:?max(345.9,286.2)345.9?Max(-57,-24)-24例:?min(345.9,286.2)286.2?min(-57,-24)-57 345求余数:求余数:MOD(,) 【功能】返回nExp1除以nExp2的余数。余数的小数位数与nExp1相同,符号与nExp2相同。例如:?mod(6*8,30/3)8?mod(-89,8)7?mod(89,-8)-7356四舍五入:四舍五入:ROUND(,) 功功能能:返返回回nExp1四四舍舍五五入入的的值值, nExp2表表示示保保留留的的小数位数。小数位数。例如:例如: ? round(1024.1972,2) ? round(1024.1972,2) 1024.20 1024.20 ? round(1024.1972,-2) ? round(1024.1972,-2) 1000 10007函数:函数:PI( ) 功能:求常量功能:求常量的近似值的近似值8. 随机函数:随机函数:RAND()() 功能:求功能:求01之间的随机数。之间的随机数。 362.3.2 字符函数字符函数1求子串起始位置,整型求子串起始位置,整型AT(, ,nExp )如果串如果串cExp2不包含串不包含串cExp1,值为零。若有,值为零。若有nExp,则,则找串找串cExp1在串在串cExp2中第中第nExp次出现的起始位置。次出现的起始位置。 ?AT(“A”,”ABCA”) ?AT(“A”,”ABCA”) 1 1 ?AT(A,BCA) ?AT(A,BCA) 3 3 ?AT(d,abc) 0 字字符符函函数数是是处处理理字字符符型型数数据据的的函函数数,其其自自变变量量或或函函数数值值中中至少有一个是字符型数据。至少有一个是字符型数据。372取子串,取子串,C型型取前取前nExp个字符:个字符:LEFT(,)取后取后nExp个字符:个字符:RIGHT(,)从从cExp串中第串中第nExp1个字符开始,连续取个字符开始,连续取nExp2个字个字符:符:SUBSTR (, , )若缺少若缺少nExp2,则从,则从cExp串中取第串中取第nExp1个字符开始的所有字个字符开始的所有字符。符。?left(“abcdef”,3) ?left(“abcdef”,3) abc abc ?left(“?left(“云南警官学院云南警官学院”,4) ”,4) 云南云南? ?RIGHT(云南警官学院云南警官学院,4) ,4) 学院学院? ?RIGHT(云南警官学院云南警官学院,8) ,8) 警官学院警官学院38例如:c=“云南警官学院治安系”?LEFT(c,4)云南?SUBSTR(c,5,8)警官学院?SUBSTR(c,13,6)治安系393求串长度,求串长度,N型型 LEN() 2字符字符/汉字汉字 ?len(“this is a book” ?len(“this is a book”) 1414 ?len(“ ?len(“云南警官学院治安系云南警官学院治安系”) ”) 18184删除字符串空格函数,删除字符串空格函数,C型。型。删除前面的空格:删除前面的空格:LTRIM()删除后面的空格:删除后面的空格: RTRIM | TRIM()删除前面和后面的空格:删除前面和后面的空格:ALLRTRIM ()40D=“ FoxPro ”?trim(D) Store “大学计算机大学计算机 ” to z?TRIM(Z)+”基础基础“ 大学计算机基础大学计算机基础5. 生成含生成含nExp个空格空格串,个空格空格串,C型型 SPACE ()?“云南”+space(4)+”警官“+space(4)+”学院“云南警官学院416字符串替换函数,字符串替换函数,C型。型。 STUFF(,) 从从nExp1位置开始,用位置开始,用cExp2串替换串替换 cExp1串中串中nExp2个字符。个字符。如如STUFF(123456,2,4,A) & 显示显示 1A67大小写转换函数:函数值为大小写转换函数:函数值为C型。型。将串全部小写将串全部小写 :LOWER ()将串全部大写将串全部大写 :UPPER ()A=“Visual FoxPro”A=“Visual FoxPro”? UPPER(A) VISUAL FOXPRO? UPPER(A) VISUAL FOXPRO?LOWER (A) visual foxproLOWER (A) visual foxpro 42日期时间函数日期时间函数处理日期型或日期时间型数据处理日期型或日期时间型数据1系统日期函数,系统日期函数,D型型 DATE( , )功能:缺省参数时返回当前系统日期;若有参数则生成一个表示功能:缺省参数时返回当前系统日期;若有参数则生成一个表示指定日期的值。指定日期的值。2系统时间函数,系统时间函数,C型型 TIME( ) 功能:返回当前系统时间,时间显示格式为功能:返回当前系统时间,时间显示格式为hh:mm:ss。若选择了若选择了nExp ,则不管为何值,返回的系统时间还包括秒的,则不管为何值,返回的系统时间还包括秒的小数部分,精确至小数点后两位。小数部分,精确至小数点后两位。3. 系统日期和时间函数,系统日期和时间函数,T型型DATETIME(nYear, nMonth, nDay , nHours , nMinutes , nSeconds)功能:类似功能:类似DATE,若无参数,则返回系统的当前日期和时间。,若无参数,则返回系统的当前日期和时间。若有参数则生成一个表示指定日期和时间的值。若有参数则生成一个表示指定日期和时间的值。434年月日函数:年月日函数:YEAR、MONTH、DAY N型。型。求年份值求年份值 :YEAR()求日期值求日期值 : DAY( )求月份值求月份值 : MONTH()5星期函数,星期函数,N型:型:DOW()求求dExp式中星期的数值,用式中星期的数值,用17表示星期日表示星期日-星期六。星期六。6时分秒函数:时分秒函数:HOUR、MINUTE、SEC N型。型。求小时值求小时值 : HOUR()求分钟值求分钟值 : MINUTE( )求秒钟值求秒钟值 : SEC()442.3.4 数据类型转换函数数据类型转换函数在在数数据据库库应应用用的的过过程程中中,经经常常要要将将不不同同数数据据类类型型的的数数据据进进行行相相应应转转换换。VFP提提供供了了若若干干个个转转换换函函数数,能能较好地解决数据类型转换问题。较好地解决数据类型转换问题。1字符与字符与ASCII码转换函数:码转换函数:1)求串中首字符的)求串中首字符的 ASCII码,整型:码,整型: ASC(cExp)如:如: ? ASC(“China”) & 显示显示672)将指定的)将指定的ASCII码值转换成字符,码值转换成字符,C型型 :CHR(nExp)如:如: ? CHR(67) & 显示显示 C?chr(97),chr(98),chr(99)452字符型与日期(时间)型转换函数:字符型与日期(时间)型转换函数:1)把)把“/”格式的串转换成日期值,格式的串转换成日期值,D型:型:CTOD()例:例:?CTOD(“12/10/99”)的值是: 2)把日期转成)把日期转成mm/dd/yy的串,的串,C型:型:DTOC(, 1)若有参数若有参数1则以则以yyyymmdd格式转换。格式转换。例:例:?DTOC(date())的值是:12/10/9903/08/06463数值与字符型转换函数数值与字符型转换函数1)数数值值字字符符串串:str( , , ) 例:str(123.456,8,4)的值是:str(123.456,2)的值是:str(123.123,4)的值是:123.4560*123功能:功能:将数值表达式转换成字符型数据,该字符串的长度由参数给出,它包括小数点和负号,小数位数由参数给出,而不得小于的整数位数,否则,将得到一串“*”472)字符串)字符串数值:数值:VAL( ) 功能:将功能:将cExp串中的数字转换成对应的数值串中的数字转换成对应的数值(从左到右依次处理,直到遇到非数字字符(从左到右依次处理,直到遇到非数字字符或不能作一个数处理的字符为止,若首字符或不能作一个数处理的字符为止,若首字符就不是数字字符,则返回就不是数字字符,则返回0),转换结果取),转换结果取两位小数。函数值为两位小数。函数值为N型。型。例:val(34)的值是:val(-1.23)的值是:val(45.a2)的值是:34-1.234548 2.3.5 2.3.5 测试函数测试函数 在在数数据据库库的的操操作作中中,我我们们需需要要了了解解数数据据对对象象的的类类型型、状态等属性,状态等属性,Visual FoxProVisual FoxPro提供了相关的测试函数。提供了相关的测试函数。 1数据类型函数TYPE( ) 【格式】【格式】TYPE()TYPE() 【功功能能】返返回回cExp cExp 串串表表示示的的数数据据对对象象的的数数据据类类型型,返返回回值值是是一一个个表表示示数数据据类类型型的的大大写写字字母母。C C:字字符符型型,D D:日日期期型型,N N:数数值值型型,L L:逻逻辑辑型型,M M:备备注注型型,G G:通通用用型,型,U U:未定义。:未定义。 例:?例:?Type(“5*6”) Type(“5*6”) N N ?type(“3+25”) ?type(“3+25”) L L ?type(“ ?type(“计算机计算机“) C C 49例:例:use学生?bof().F.skip-1?bof().T.2、文件起始测试函数文件起始测试函数格式:格式:BOF()功能:功能:测定当前库的记录指针是否移到第一条记录之前,若是,函数值为.T.;否则为.F.50例:use学生gobottom?eof().F.skip?eof().T.3、文件结束测试函数文件结束测试函数格式:格式:EOF()功能:功能:测定当前库的记录指针是否移到最后一条记录之后,若是,函数值为.T.;否则为.F.51 4当前记录号函数RECNO() 【格式】【格式】RECNO( | ) 【功能】返回指定工作区中表的当前记录的【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为记录号。对于空表返回值为1。 例:例:use学生?RECNO()1go5?RECNO()5522文件查找函数:文件查找函数:格式:格式:FILE ( )功功能能:根根据据cExp串串中中指指定定路路径径查查找找文文件件,如如未未指指定定路路径径,则则在在默默认认目目录录中中查查找找。文文件件存存在在,返返回逻辑真回逻辑真(.T.) 值,否则为逻辑假值,否则为逻辑假(.F.)值。值。3条件测试函数:条件测试函数:格式:格式:IIF ( , )功功能能:当当lExp值值为为真真(.T.),返返回回表表达达式式eExp1的的值值,否否则则返返回回表表达达式式eExp2的的值值。eExp1和和eExp2可以是任意数据类型的表达式。可以是任意数据类型的表达式。532.3.6 其它函数其它函数1宏替换函数:宏替换函数:& . 功能:替换出字符型变量功能:替换出字符型变量cVar中字符。中字符。e( ) 特别提示:特别提示:&后不能加空格。后不能加空格。例例1:store“您好!”toH?&H的值是:您好!例例2:C=“display”use学生?&C的值是:学生库文件的第一条记录。543字符串匹配函数:字符串匹配函数:LIKE (,)功能:比较功能:比较cExp1和和cExp2串中对应的字符,若串中对应的字符,若所有对应字符都匹配,则返回所有对应字符都匹配,则返回 .T. , 否则返回否则返回 .F.。4. 值域测试函数:值域测试函数:BETWEEN(eExp, eExp1, eExp2)功能:判断功能:判断eExp值是否介于值是否介于eExp1和和eExp2之间。之间。55vv第一题:是非题第一题:是非题第一题:是非题第一题:是非题1.1.在在在在VFPVFP中变量必须先赋值再使用。(中变量必须先赋值再使用。(中变量必须先赋值再使用。(中变量必须先赋值再使用。(x x )2.2.CLOSE ALLCLOSE ALL和和和和CLEAR ALLCLEAR ALL语句的功能是相同的(语句的功能是相同的(语句的功能是相同的(语句的功能是相同的(x x )3.3.SET EXACT ONSET EXACT ON只对字符串运算起作用。(只对字符串运算起作用。(只对字符串运算起作用。(只对字符串运算起作用。( )4.4.关系数据库管理系统所管理的关系是一个关系数据库管理系统所管理的关系是一个关系数据库管理系统所管理的关系是一个关系数据库管理系统所管理的关系是一个DBFDBF( )5.5.在在在在Visual FoxProVisual FoxPro中,项目文件的扩展名是中,项目文件的扩展名是中,项目文件的扩展名是中,项目文件的扩展名是.DBC.DBC。(。(。(。(x x ) . .pjxpjx 数据库文件数据库文件数据库文件数据库文件6.6.TIME( )TIME( )的返回值的数据类型是时间日期类型。(的返回值的数据类型是时间日期类型。(的返回值的数据类型是时间日期类型。(的返回值的数据类型是时间日期类型。(x x)567.7.在下面的在下面的在下面的在下面的Visual FoxProVisual FoxPro表达式中,运算结果是逻辑表达式中,运算结果是逻辑表达式中,运算结果是逻辑表达式中,运算结果是逻辑真的是真的是真的是真的是_。 A.EMPTY(.NULL.) B.LIKE(acd,ac?) A.EMPTY(.NULL.) B.LIKE(acd,ac?) C.AT(a,123abc)C.AT(a,123abc) D.EMPTY(SPACE(2)D.EMPTY(SPACE(2)8.Visual FoxPro DBMS 8.Visual FoxPro DBMS 基于的数据模型是基于的数据模型是基于的数据模型是基于的数据模型是_ _ 。 A. A.层次型层次型层次型层次型 B.B.关系型关系型关系型关系型 C. C.网状型网状型网状型网状型 D. D.混合型混合型混合型混合型9.9.下面关于下面关于下面关于下面关于Visual FoxProVisual FoxPro数组的叙述中,错误的是数组的叙述中,错误的是数组的叙述中,错误的是数组的叙述中,错误的是_。 A. A.用用用用DIMENSIONDIMENSION和和和和DECLAREDECLARE都可以定义数组。都可以定义数组。都可以定义数组。都可以定义数组。 B.Visual FoxPro B.Visual FoxPro只支持一维数组和二维数组只支持一维数组和二维数组只支持一维数组和二维数组只支持一维数组和二维数组 C.C.一个数组中各个数组元素必须是同一种数据类型一个数组中各个数组元素必须是同一种数据类型一个数组中各个数组元素必须是同一种数据类型一个数组中各个数组元素必须是同一种数据类型 D. D. 新定义数组的各个数组元素初值为新定义数组的各个数组元素初值为新定义数组的各个数组元素初值为新定义数组的各个数组元素初值为.F.F.571010如果如果如果如果X X是一个正实数是一个正实数是一个正实数是一个正实数, ,对对对对X X的第的第的第的第3 3位小数四舍五入的表达式位小数四舍五入的表达式位小数四舍五入的表达式位小数四舍五入的表达式是是是是_ A.0.01*int(x+0.005) A.0.01*int(x+0.005) B.0.01*int(100*(x+0.005)B.0.01*int(100*(x+0.005) C.0.01*int(100*(x+0.05) D.0.01*int(x+0.05) C.0.01*int(100*(x+0.05) D.0.01*int(x+0.05)11. 11. 命令命令命令命令Y=YEAR(12/15/99)Y=YEAR(12/15/99)执行后执行后执行后执行后, ,内存变内存变内存变内存变量量量量Y Y的值是的值是的值是的值是_._. A.99 B.05 C.11 A.99 B.05 C.11 D.1999 D.199912.12.执行以下语句后,变量执行以下语句后,变量执行以下语句后,变量执行以下语句后,变量c c的值为的值为的值为的值为( )( ) c cchinachina c=upper(right(c,3) c=upper(right(c,3) A.Chi B.CHI A.Chi B.CHI C.INA C.INA D.Ina D.Ina5813.13.在以下四组中,每组有两个分别运算的函数,运算结果相同在以下四组中,每组有两个分别运算的函数,运算结果相同在以下四组中,每组有两个分别运算的函数,运算结果相同在以下四组中,每组有两个分别运算的函数,运算结果相同的是(的是(的是(的是( )。)。)。)。 A. LEFT(VisualFoxPro,3)A. LEFT(VisualFoxPro,3)与与与与SUBSTR(VisualFoxPro,1,3)SUBSTR(VisualFoxPro,1,3) B.YEAR(DATE() B.YEAR(DATE()与与与与SUBSTR(DTOC(DATESUBSTR(DTOC(DATE()()()()),7,2),7,2) C.TYPE(36-5*4) C.TYPE(36-5*4)与与与与TYPE(36-5*4)TYPE(36-5*4) D. D.假定假定假定假定 A=this , B=is a string A-B A=this , B=is a string A-B与与与与A+B A+B 14. 14. 表达式表达式表达式表达式2*32+2*8/4+322*32+2*8/4+32的值为(的值为(的值为(的值为( )。)。)。)。 A.64 A.64 B.31 B.31 C.49 D.22 C.49 D.2215.15.关系数据库的三种关系运算:选择、连接、投影关系数据库的三种关系运算:选择、连接、投影关系数据库的三种关系运算:选择、连接、投影关系数据库的三种关系运算:选择、连接、投影, ,在在在在VFPVFP中中中中, ,投影操作可用投影操作可用投影操作可用投影操作可用( )( )实现实现实现实现. . A.FIELD A.FIELD B. B.条件表达式条件表达式条件表达式条件表达式 C. C.范围子句范围子句范围子句范围子句 D. D.工作区号工作区号工作区号工作区号59本章作业本章作业1、上机练习第二章内容中的所有例题,、上机练习第二章内容中的所有例题,以便掌握所学的内容。以便掌握所学的内容。2、P29作业作业.60姓名姓名=”=”王洪王洪” ”基本工资基本工资=1900=1900?str(1900,4)?str(1900,4)基本工资基本工资=1900=1900? ?姓名姓名+的基本工资为的基本工资为+基本工资基本工资 ?date()?date()?time(0?time(0?datetime()?datetime()?dow(date()?dow(date()?dow(datetime()?dow(datetime()?hour(datetime()?hour(datetime()61
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号